- Questo topic ha 12 risposte, 5 partecipanti ed è stato aggiornato l'ultima volta 12 anni, 7 mesi fa da
Marco.
-
CreatoreTopic
-
8 Novembre 2010 alle 11:09 #52102::
Rieccomi all’attacco,
ho provato a cercare “assi pgfplots” sul forum ma non ho trovato niente. Ho fatto passare i vari esempio del manuale di pgfplots, ma anche lì niente. Quindi chiedo a voi.
Dovrei disegnare un grafico con due curve: una sul piano xy, l’altra sul piano xy’, con y’ disegnato sul lato destro del grafico. Cercando in rete ho trovato un esempio di quello che voglio fare. Lo vedete sul link:
http://i.msdn.microsoft.com/ee291567.Petzold.Extreme.Fig5%28en-us,MSDN.10%29.pngGrazie e buon lavoro a tutti,
Daniele
-
CreatoreTopic
-
AutoreRisposte
-
-
8 Novembre 2010 alle 13:17 #52103::
Rieccomi all’attacco,
ho provato a cercare “assi pgfplots” sul forum ma non ho trovato niente. Ho fatto passare i vari esempio del manuale di pgfplots, ma anche lì niente. Quindi chiedo a voi.
Dovrei disegnare un grafico con due curve: una sul piano xy, l’altra sul piano xy’, con y’ disegnato sul lato destro del grafico. Cercando in rete ho trovato un esempio di quello che voglio fare. Lo vedete sul link:
http://i.msdn.microsoft.com/ee291567.Petzold.Extreme.Fig5%28en-us,MSDN.10%29.pngGrazie e buon lavoro a tutti,
DanieleSolo un’idea che potrebbe anche non funzionare:
Potresti disegnare la seconda curva opportunamente traslata secondo l’asse y e poi disegnare a mano i tick di scala a destra sull’asse y attraverso i nodi e le proprietà cs tipo (preso al volo dal manuale):
`\node[small dot,pin=-90:{$0.5$}] at (axis description cs:1.03,0.5) {};`Non credo sia una cosa comune plottare curve sovrapposte di differenti scale sullo stesso grafico, pertanto è normale che pfgplots non le rammenti (almeno così mi pare).
Ciao.
-
8 Novembre 2010 alle 13:19 #52104
-
8 Novembre 2010 alle 13:50 #52105::
😳
E sì che praticamente il titolo di quella sezione è uguale a quello che ho dato al topic… Mi spiace, l’esempio mi era sfuggito. Sarei curioso di sapere, franen, se l’avevi già visto o se l’hai cercato apposta, nel qual caso la domanda è: come hai fatto a trovarlo? Hai semplicemente cercato “multiple axes”?Grazie ancora,
Daniele
-
8 Novembre 2010 alle 13:55 #52106
-
8 Novembre 2010 alle 14:33 #52107::
Sono riuscito a inserire gli assi multipli, però ho ancora almeno due problemi (“almeno” in quanto matematicamente non ho dimostrato siano gli unici… sono gli unici noti :D).1) Anche compilando il secondo esempio di pagina 133 del manuale, la label dell’asse y (“per thousand”) non è nel posto giusto ma sovrapposta all’etichetta dell’asse y di sinistra;
2) Voglio una legenda che raccolga le curve disegnate nei due ambienti axis. Usando \addlegendentry{—} per ogni curva mi crea due legende separate che, se nella stessa posizione, ovviamente si sovrappongono.
Spero che qualcuno abbia idea di come si risolvano questi problemi.
Grazie,
Daniele
-
9 Novembre 2010 alle 7:47 #52108::
Sono riuscito a inserire gli assi multipli, però ho ancora almeno due problemi (“almeno” in quanto matematicamente non ho dimostrato siano gli unici… sono gli unici noti :D).
1) Anche compilando il secondo esempio di pagina 133 del manuale, la label dell’asse y (“per thousand”) non è nel posto giusto ma sovrapposta all’etichetta dell’asse y di sinistra;
2) Voglio una legenda che raccolga le curve disegnate nei due ambienti axis. Usando \addlegendentry{—} per ogni curva mi crea due legende separate che, se nella stessa posizione, ovviamente si sovrappongono.
Spero che qualcuno abbia idea di come si risolvano questi problemi.
Grazie,
DanieleScusate ma nel mio manuale il paragrafo 4.8.10 citato non riguarda affatto un doppio sistema sull’asse y. 😀
Evidentemente dovrò passare alla TeX Live 2010 su tutte le mie macchine, altrimenti non potrò consultare i nuovi sviluppi.
Scusate ancora.
Ciao
-
9 Novembre 2010 alle 8:46 #52109::
Scusate ma nel mio manuale il paragrafo 4.8.10 citato non riguarda affatto un doppio sistema sull’asse y. 😀
[…]
Scusate ancora.Ci mancherebbe, anzi, intanto ti ringrazio per aver dedicato tempo al problema. A tal proposito, tra l’altro, per far risparmiare tempo a chi volesse cimentarsi, riporto un esempio minimo compilabile. È quello che ho citato nel mio ultimo messaggio prima di questo.
`\documentclass[11pt,a4paper]{report}\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[italian]{babel}
\usepackage{pgfplots}\begin{document}
\begin{tikzpicture}
\begin{axis}[
scale only axis,
xmin=-5,xmax=5,
axis y line*=left,% the '*' avoids arrow heads
xlabel=$x$,
ylabel=First ordinate]
\addplot coordinates{
(-5,-3)
(5,3)
};
\end{axis}
\begin{axis}[
scale only axis,
xmin=-5,xmax=5,
axis y line*=right,
axis x line=none,
ylabel=Second ordinate]
\addplot[red] coordinates{
(-1,1)
(5,2)
};
\end{axis}
\end{tikzpicture}\end{document}`
Tra l’altro non riesco a capire dove viene detto a pgfplots di usare dei marker per la linea blu.
Grazie ancora,
DanielePS Vi invito anche a provare a creare una legenda unica per le due curve (cioè una legenda con le due voci)… banale???
-
9 Novembre 2010 alle 8:55 #52110::
Tra l’altro non riesco a capire dove viene detto a pgfplots di usare dei marker per la linea blu.
Credo sia dovuto al fatto che per la linea rossa viene specificata almeno una opzione al comando \addplot e quindi pgfplots si attiene a quella, invece per la blu non ci sono opzioni e quindi il pacchetto utilizza quelle che lui inserisce di default. Comunque per eliminare i marker basta usare l’opzione “no markers”.
Ciao
Fra
-
10 Novembre 2010 alle 16:30 #52111::
Riporto qui la soluzione che ho proposto a Daniele86 tramite mp per il primo problema, cioè quello di avere le due etichette sovrapposte.
Questo è dovuto all’opzione ” axis y line* ” ed in particolare alla sua versione asteriscata. Infatti togliendo l’asterisco si hanno le due etichette sugli assi y al loro posto. Questo produce l’inconveniente di avere l’asse y destro con la freccia finale e non come box. Per ovviare a ciò si può definire a mano lo stile dell’asse y tramite l’opzione
`y axis line style={-}`
Quindi il codice di prova diventa
`\documentclass[11pt,a4paper]{report}\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[italian]{babel}
\usepackage{pgfplots}\begin{document}
\begin{tikzpicture}
\begin{axis}[
scale only axis,
xmin=-5,xmax=5,
axis y line*=left,% the '*' avoids arrow heads
xlabel=$x$,
ylabel=First ordinate]
\addplot coordinates{
(-5,-3)
(5,3)
};
\end{axis}
\begin{axis}[
scale only axis,
xmin=-5,xmax=5,
axis y line=right,
axis x line=none,
ylabel=Second ordinate,y axis line style={-}]
\addplot[red] coordinates{
(-1,1)
(5,2)
};
\end{axis}
\end{tikzpicture}
\end{document}`Ciao
Fra
-
17 Novembre 2010 alle 10:28 #52112::
Ho trovato un espediente per sistemare parzialmente anche il problema dalla legenda. Ne creo due che nel mio caso posiziono fuori dal grafico con il codice
` legend style={
at={(0.01,1.01)},
anchor=south west
}`
e
` legend style={
at={(0.99,1.01)},
anchor=south east
}`
da inserire nelle opzioni degli assi.Se qualcuno conosce un modo per creare una legenda unica dica pure.
Ciao,
Daniele
-
8 Febbraio 2014 alle 23:52 #52113
-
9 Febbraio 2014 alle 13:09 #52114::
Daniele86″ post=50948Se qualcuno conosce un modo per creare una legenda unica dica pure.
Penso di aver trovato una soluzione.
Riporto la soluzione che ho adottato, il codice non è molto ordinato e si potrebbe ottimizzare ma per ora va bene così:
`\documentclass[]{standalone}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage[output-decimal-marker={,}]{siunitx}
\usepackage[]{pgfplots}
\pgfplotsset{/pgf/number format/use comma,compat=newest}
\begin{document}\begin{tikzpicture}
\pgfplotsset{title style={at={(0.5,1.07)}}}
\pgfplotsset{every axis legend/.append style={at={(0.5,1.01)},anchor=south}}
\begin{axis} [ scale only axis,
axis y line*=left,
grid=major,
xlabel={Data e ora},
ylabel={Velocità down-load (Mib)},
title={\textbf{Rilievo velocità internet}},
width=10cm, height=7cm]
\addplot+ [thick,cyan,smooth] file {data_down.txt};
\label{Dplot}
\end{axis}
\begin{axis} [ scale only axis,
axis x line=none,
axis y line*=right,
ylabel={Velocità up-load (Mib)},
width=10cm, height=7cm,
legend style={draw=none},
legend cell align=left,
legend columns={2}]
\addlegendimage{/pgfplots/refstyle=Dplot}\addlegendentry{Down-load}
\addplot+ [thick,orange,smooth,mark=*,mark options={fill=red}] file{data_up.txt};
\addlegendentry{Up-load}
\end{axis}
\end{tikzpicture}
\end{document}`[attachment=921]Grafico_latex.pdf[/attachment]
[attachment=922]Grafico_latex.tex[/attachment]
[attachment=923]data_up.txt[/attachment]
[attachment=924]data_down.txt[/attachment]
Attachments:
You must be logged in to view attached files.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.