Re: Pgfplots e diagrammi di Gantt

#77883
Liverpool
Partecipante
    Up
    0
    Down
    ::


    Se le misure non sono molte, come nell’esempio che proponi, io credo attualmente che la cosa migliore sia disegnare a mano le barre tramite i comandi di TikZ in ambiente pgfplots come di seguito:
    `\documentclass{article}
    \usepackage[svgnames]{xcolor}
    \usepackage{pgfplots}
    \usepgfplotslibrary{dateplot}
    \usetikzlibrary{shadings,shadows,fadings}

    \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}]
    \begin{axis} [xmin=2009-03-28, xmax=2012-07-10, y dir=reverse, date coordinates in=x, xmajorgrids=true,
    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]

    \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}`
    Il comando [tt]\addplot[/tt] alla fine serve:
    1) perché è necessario disegnare qualcosa sulla tela, altrimenti il pacchetto sostituisce tutto con un riferimento vuoto;
    2) perché bisogna disegnare qualcosa di sufficientemente grande da far rientrare nella tela tutte le barre.

    [tt]axis cs[/tt] indica a TikkZ di usare le coordinate del sistema di riferimento di pgfplots.

    Si può prevedere qualche forma di automazione come l’uso di un ciclo o la definizione a priori dell’altezza dei rettangoli, ma per un disegno così breve non ne vedo l’utilità. Fammi sapere cosa ne pensi.

    Ciao

    Go to top