Re: Pgfplots e diagrammi di Gantt

#77894
Liverpool
Partecipante
    Up
    0
    Down
    ::


    Ora devo sospendere. Nel frattempo ti mostro il codice con i vertici del rettangolo calcolati automaticamente. Il file dati.dat è quello con la colonna i soltanto. Noterai che la semialtezza del rettangolo è stata definita a parte in modo da poterla modificare rapidamente in un secondo tempo. La riga con \DTLcurrentindex serve solo per mostrare che in realtà il ciclo stampa 4 volte la stessa istruzione con \skip=4. E’ stato necessario impostare lo zero (28/3/2009) in modo da poter utilizzare gli spostamenti relativi.

    `\documentclass{article}
    \usepackage{datatool}
    \usepackage[svgnames]{xcolor}
    \usepackage{pgfplots}
    \usepgfplotslibrary{dateplot}
    \usetikzlibrary{shadings,shadows,fadings,calc}
    %\pgfplotsset{compat=1.6}

    \DTLloaddb[noheader=false]{misure}{dati.dat}

    \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,4}, ylabel=Misure]

    \DTLforeach*{misure}%
    {\skip=i,\inizio=inizio,\fine=fine}%
    {\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)$);
    \draw (axis cs:2010-01-01,2) node {\DTLcurrentindex};} % riga di prova

    %\fill [ripieno] (axis cs:2009-04-29,0.7) rectangle (axis cs:2011-11-20,1.3);
    %\fill [ripieno] (axis cs:2010-07-18,1.7) rectangle (axis cs:2012-01-18,2.3);
    %\fill [ripieno] (axis cs:2009-04-29,2.7) rectangle (axis cs:2012-01-18,3.3);
    %\fill [ripieno] (axis cs:2009-06-08,3.7) rectangle (axis cs:2012-01-18,4.3);

    \addplot [draw=none] coordinates {(2009-03-28,0.7) (2012-07-10,4.3)};
    \end{axis}
    \end{tikzpicture}
    \end{document}`

    Go to top