- Questo topic ha 19 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 14 anni fa da
Andrea.
-
CreatoreTopic
-
1 Settembre 2012 alle 9:23 #77880::
Salve a tutti,ho la necessità di creare un grafico in cui viene indicata la durata temporale di una serie di misure. Ho quindi pensato di creare un diagramma di Gantt; premetto che ho trovato alcuni pacchetti che permettono di realizzare questo tipo di diagrammi in Latex, ma escludendo quelli che si basano su pstricks, rimane pgfgantt che però non mi soddisfa a livello di layout
Ho pensato di procedere manualmente con pgfplots per ricreare il layout che ho in mente
Ho procedimento che ho seguito:
1) Ho creato un file dati.txt (in allegato) che contiene 4 colonne:
Nome Inizio Fine Giorni
2) Ho creato un grafico xbar stacked
3) Ho inserito come prima serie la colonna ‘Inizio’: in questo modo viene creata una barra tra il valore 0 e la data di inizio della misura. L’intenzione è quella di far sparire questa serie con `[draw=none,fill=none]`
4) Vorrei inserire come seconda serie la colonna ‘Giorni’ in modo che la seconda barra sommi alla data di inizio della misura la durata in giorni della misura stessa. Ciò non sembra possibile perchè pgfplots gestisce le date nel formato: aaaa-mm-gg e non accetta esclusivamente un numero di giorni.La mia domanda è quindi:
è possibile avere due distinti formati per due distinti \addplot: il primo `date coordinates in=x` e il secondo normale?
In alternativa: come è possibile rendere il layout che ho in mente?Di seguito riporto un esempio minimale in cui però il secondo \addplot è basato sulla colonna ‘Fine’ e quindi il risultato finale è errato.
`\documentclass{article}\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\begin{document}
\begin{tikzpicture}[%
]%Carica tabella da richiamare con \loadedtable
\pgfplotstableread{dati.txt}\loadedtable\begin{axis}[
% ASSE X
xbar stacked,
date coordinates in=x,
xticklabel={\day-\month-\year},
date ZERO=2009-01-01,
x tick label style={rotate=45,anchor=east},
% ASSE Y
y dir=reverse,
ytick=data,
ylabel={Misure},
% yticklabels from table={\loadedtable}{Nome},
symbolic y coords={A,B,C,D},
]\addplot table[x=Inizio,y=Nome]{\loadedtable};
\addplot table[x=Fine,y=Nome]{\loadedtable};
\end{axis}
\end{tikzpicture}
\end{document}
`Grazie in anticipo
Andrea
[attachment]C:\fakepath\excel_gantt.png[/attachment]
[attachment]C:\fakepath\excel_gantt.png[/attachment]
Attachments:
You must be logged in to view attached files. -
CreatoreTopic
-
AutoreRisposte
-
-
1 Settembre 2012 alle 12:14 #77881::
non fai prima a creare il diagramma di GANTT con l’apposito tool (ganttproject o affini)?? io personalmente ho preferito il primo, che è anche free e multipiattaforma. salvi il diagramma in formato .png e lo carichi come immagine (se è troppo lungo ruoti l’immagine di 90 gradi) e il gioco è fatto 🙂
-
1 Settembre 2012 alle 12:48 #77882
-
3 Settembre 2012 alle 8:16 #77883::
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
-
3 Settembre 2012 alle 9:09 #77884::
Che dire…ottimo!! Ha grande impatto visivo, nonché la coerenza tipografica che cercavo.Ti ringrazio molto…
Il problema che rimane è che in effetti le misure sono molte, io le ho ridotte per poter fornire un esempio minimo. In realtà ho 17 misure, ognuna delle quali si riferisce ad un edificio diverso. Sarebbe quindi utile poter automatizzare il tutto, almeno la lettura dei dati e delle etichette dell’asse y (i nomi degli edifici) da un file esterno del tipo:
Nome edificio Inizio Fine
…Non so se tikz permetta la lettura da file esterni; nel caso non si possa valuterò se adottare la tua soluzione manuale o appoggiarmi ad un programma esterno.
Grazie ancora
-
3 Settembre 2012 alle 16:41 #77885::
Non avevo pensato al pacchetto datatool per leggere dati da un file esterno. Ho modificato il codice di Liverpool così
`
\documentclass{article}
\usepackage{datatool}
\usepackage[svgnames]{xcolor}
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\usetikzlibrary{shadings,shadows,fadings}
%\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}]\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]\DTLforeach*{misure}{\start=inizio, \end=fine, \skip=i}{\fill [ripieno] (axis cs:\start,\skip.7) rectangle (axis cs:\end,\skip.3);}
%\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}
`dove dati.dat è
`i,inizio,fine
1,2009-06-08,2012-01-18
2,2009-04-29,2012-01-18
3,2010-07-18,2012-01-18
4,2009-04-29,2011-11-20
`
tuttavia non compila neanche abilitando
`
%\pgfplotsset{compat=1.6}
`
come suggerito da file log.Qualcuno ha idea del perché?
-
3 Settembre 2012 alle 18:01 #77886::
sperando di non andare troppo offtopic: ho compilato il primo codice e il risultato è una specie di istogramma capovolto… le cui date sono malposte e semi incomprensibili.
io evitarei di usare simili “trucchi” preferendo ganttproject. quando crei il diagramma vedrai che spettacolo! se non altro chi lo legge ci può capire qualcosa …
-
4 Settembre 2012 alle 7:00 #77887::
Iovem” post=77153Qualcuno ha idea del perché?
Perché hai usato il comando [tt]\end[/tt] come etichetta per il disegno.
Ora c’è da risolvere un altro problema: non puoi dire [tt]\skip.7[/tt] sperando che TikZ lo interpreti come 1.7. Bisogna trovare il modo di sommare e sottrarre le ordinate in [tt]axis cs[/tt] ma non è così semplice perché ci sono di mezzo le date in ascissa. Finora ho provato, ma senza risultati. Spera che intervenga qualcuno più in gamba di me.
Ciao
-
4 Settembre 2012 alle 7:26 #77888::
Liverpool” post=77167
Qualcuno ha idea del perché?
Perché hai usato il comando [tt]\end[/tt] come etichetta per il disegno.
Hai ragione, ti ringrazio.
Però se il problema è solo la somma di 0.7 e 0.3, si possono spostare all’interno del file [tt]dati.dat[/tt] generando con excel, così:
`
left,right,inizio,fine
0.7,1.3,2009-06-08,2012-01-18
1.7,2.3,2009-04-29,2012-01-18
2.7,3.3,2010-07-18,2012-01-18
3.7,4.3,2009-04-29,2011-11-20
`
Quindi
`\documentclass{article}
\usepackage{datatool}
\usepackage[svgnames]{xcolor}
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\usetikzlibrary{shadings,shadows,fadings}
%\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}]\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]\DTLforeach*{misure}{\start=inizio, \fine=fine, \l=left, \r=right}{\fill [ripieno,] (axis cs:\start,\l) rectangle (axis cs:\fine,\r);}
%\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}`Tuttavia il loop non sembra funzionare correttamente.
-
4 Settembre 2012 alle 7:33 #77889::
Iovem” post=77168Tuttavia il loop non sembra funzionare correttamente.
In che senso? Scusa la domanda sciocca, ma sono riuscito a superare il problema della somma di coordinate però ottengo tutte le barre sovrapposte all’ultima. Vorrei sapere se hai lo stesso problema senza ricompilare tutto, perché in quel caso dovremmo concentrarci sul ciclo e non sulle istruzioni del disegno.
-
4 Settembre 2012 alle 7:38 #77890::
Ho modificato così il file esterno
`left,right,inizio,fine
0.7,1.3,2009-11-08,2012-01-18
1.7,2.3,2009-04-29,2012-01-18
2.7,3.3,2010-11-18,2012-01-18
3.7,4.3,2010-04-29,2011-11-20`
in modo da avere una situazione più chiara.Di fatto il ciclo disegna SOLO l’ultima riga [tt]3.7,4.3,2010-04-29,2011-11-20[/tt]
-
4 Settembre 2012 alle 7:44 #77891::
Iovem” post=77168Tuttavia il loop non sembra funzionare correttamente.
Forse mi sbaglio, ma dalla documentazione di datatool mi sembra che la sintassi del ciclo sia un po’ diversa rispetto a quella che hai usato tu:
`\DTLforeach[〈conditions〉]{〈db name〉}{〈values〉}{〈text〉}`
Ricordati che in alternativa puoi evitare di usare datatool ma pgfplotstable per leggere il file .dat.
Ciao
Claudio
-
4 Settembre 2012 alle 7:47 #77892
-
4 Settembre 2012 alle 8:16 #77893::
Da quello che ho visto, sono i comandi di TikZ che danno problemi, perché se provi con [tt]\addplot coordinates {(\inizio,\skip)};[/tt] funziona correttamente.P.S.: ora è chiaro perché nel primo messaggio avevo detto che per un elenco così breve sarebbe stato più semplice procedere manualmente…
-
4 Settembre 2012 alle 8:35 #77894::
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}`
-
4 Settembre 2012 alle 14:46 #77895::
Problema risolto. La spiegazione è a pag. 359 (par. 8.1) del manuale di pgfplots, nel capoverso che inizia con keep in mind.
Ti allego il codice realizzato con datatool e quello realizzato con pgfplotstable, come suggerito da Claudio. Scegli tu la soluzione che ti piace di più.
Fammi sapere se ci sono altri problemi.
`\documentclass{article}
\usepackage{datatool}
\usepackage[svgnames]{xcolor}
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\usetikzlibrary{shadings,shadows,fadings,calc}\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}%
{\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,0.7) (2012-07-10,4.3)};
\end{axis}
\end{tikzpicture}
\end{document}`
`\documentclass{article}
\usepackage[svgnames]{xcolor}
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\usetikzlibrary{shadings,shadows,fadings,calc}\pgfplotstableread{dati.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,4}, 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,0.7) (2012-07-10,4.3)};
\end{axis}
\end{tikzpicture}
\end{document}`
-
4 Settembre 2012 alle 16:50 #77896::
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
-
5 Settembre 2012 alle 5:12 #77897::
Iovem” post=77186OT: 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?
Si lo stile è opera di Liverpool! Ecco il relativo codice:
`\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}]`A te interessa definire una nuova [tt]colormap[/tt]? Per intenderci guarda la documentazione: 4.6.6 Color Maps e 5.2 Colormaps.
Ciao
Claudio
-
5 Settembre 2012 alle 5:51 #77898::
Iovem” post=77186lo 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?
Lo stile l’ho realizzato cercando di riprodurre l’immagine di excel che hai inserito all’inizio della conversazione (che ora è cambiata), come da tua richiesta. Guardando il risultato sul grafico completo, forse le ombre sono un po’ troppo lunghe. Per le sfumature di colore, ho semplicemente scelto due tonalità di azzurro dal manuale di xcolor nel paragrafo 4.3 a pag. 38. Se vuoi provare altri colori, devi solo sostituire gli originali in [tt]top color[/tt] e [tt]bottom color[/tt] nelle riga di tikzstyle.
Per esempio, sul rosso potresti provare [tt]FireBrick!70[/tt] (un po’ più chiaro di FireBrick) + [tt]DarkRed[/tt]; però così le ombre grigie non stanno benissimo, allora sostituisci il black dopo il fill con [tt]DarkRed!80!Black[/tt] (un po’ più rosso che nero).
Con il rosa prova [tt]LightSalmon[/tt] + [tt]DarkSalmon!70!DarkRed[/tt].
Con il verde: [tt]YellowGreen!70!SeaGreen[/tt] + [tt]ForestGreen[/tt] e per l’ombra [tt]ForestGreen!80!Black[/tt].
Insomma: fa un po’ di tentativi. Dipende molto dal gusto personale.Ciao
-
5 Settembre 2012 alle 6:06 #77899
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.