Re: Pgfplots e diagrammi di Gantt

#77896
Andrea
Partecipante
    Up
    0
    Down
    ::


    Ti ringrazio molto per il tempo e lo sforzo che hai dedicato al mio problema, il risultato è eccellente.

    Ho imparato molti aspetti nuovi di [tt]pgfplots[/tt] e mi riprometto di leggere più a fondo il manuale.

    Posto il codice definitivo a cui ho aggiunto le misure mancanti e le etichette dell’asse y da una nuova colonna del file [tt]data.dat[/tt]
    `
    \documentclass{article}
    \usepackage[svgnames]{xcolor}
    \usepackage{pgfplots}
    \usepgfplotslibrary{dateplot}
    \usetikzlibrary{shadings,shadows,fadings,calc}

    \pgfplotsset{height=12cm,width=10cm}

    \pgfplotstableread{data.dat}{\misure}
    \pgfplotstablegetrowsof{\misure}
    \pgfmathsetmacro{\righe}{\pgfplotsretval-1}

    \begin{document}
    \begin{tikzpicture}
    \tikzfading [name=dissolvenza, top color=transparent!0, bottom color=transparent!95]
    \tikzstyle{ripieno}=[top color=DodgerBlue, bottom color=RoyalBlue, general shadow={fill=black, shadow yshift=-0.8ex, path fading=dissolvenza}]
    \def\h{0.3} % semialtezza del rettangolo

    \begin{axis} [xmin=2009-03-28, xmax=2012-07-10, y dir=reverse, xmajorgrids=true,
    date coordinates in=x, date ZERO=2009-03-28,
    xtick={2009-03-28,2009-10-14,2010-05-02,2010-11-18,2011-06-06,2011-12-23,2012-07-10},
    xticklabel={\day-\month-\year}, x tick label style={rotate=45,anchor=east},
    ytick={1,2,3,…,17},
    yticklabels from table={data.dat}{nome},
    ylabel=Misure,
    ]

    \foreach \i in {0,…,\righe}
    {
    \pgfplotstablegetelem{\i}{i}\of\misure
    \let\skip\pgfplotsretval
    \pgfplotstablegetelem{\i}{inizio}\of\misure
    \let\inizio\pgfplotsretval
    \pgfplotstablegetelem{\i}{fine}\of\misure
    \let\fine\pgfplotsretval
    \edef\temp{
    \noexpand
    \fill [ripieno] (axis cs:\inizio,\skip) ++ (axis direction cs:2009-03-28,-\h)
    rectangle ($(axis cs:\fine,\skip) + (axis direction cs:2009-03-28,\h)$);}
    \temp
    }

    \addplot [draw=none] coordinates {(2009-03-28,1.5) (2012-07-10,16.5)};
    \end{axis}
    \end{tikzpicture}
    \end{document}`
    il file [tt]data.dat[/tt]:
    `nome i inizio fine
    E.1 1 2009-06-08 2012-01-18
    E.2 2 2009-04-29 2012-01-18
    E.3 3 2010-07-18 2012-01-18
    E.4 4 2009-04-29 2011-11-20
    E.5 5 2009-12-14 2012-01-09
    E.6 6 2010-06-21 2010-09-20
    E.7 7 2009-06-19 2012-01-05
    E.8 8 2009-04-29 2011-08-16
    E.9 9 2010-06-21 2010-09-20
    E.10 10 2009-04-29 2011-08-15
    E.11 11 2009-04-29 2011-10-20
    C.1 12 2009-04-29 2010-07-28
    D.1 13 2009-04-29 2012-01-18
    E.12 14 2009-04-29 2012-01-16
    E.13 15 2009-04-27 2011-08-16
    E.14 16 2009-04-27 2012-01-16
    E.15 17 2010-06-21 2010-09-20`

    OT: se posso abusare abusare ancora delle tua pazienza, e di quella degli altri che vorranno rispondere…. lo stile applicato a [tt]\fill[/tt] lo hai creato tu? Hai tratto ispirazione da qualcosa in particolare? Sapresti consigliarmi un effetto simile (anche senza le ombre, bastano le sfumature) da applicare ad altri colori (es: rosso,verde,arancio) in modo da dare lo stesso aspetto ad istogrammi con più serie di dati?

    Se credete che la domanda meriti un nuovo post sarò lieto di crearne uno.

    Grazie ancora e buona serata

    Andrea

    Go to top