- Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 11 anni, 6 mesi fa da .
-
Topic
-
Buonasera a tutti,
Sto cercando di creare un grafico con pgfplots che mostri due curve che hanno però scale fortemente diverse e ho cercato di seguire le indicazioni riportate nella guida scritta da Agostino De Marco e Roberto Giacomelli.
Qui riporto il codice che ho usato
`
\begin{figure}
\centering\pgfplotsset{
every axis x label/.append style = {
font = \relsize{0.9}
},
every axis y label/.append style = {
font = \relsize{0.9},
rotate = -90,
xshift = -0.5em
},
minor grid style={dotted}
}\begin{tikzpicture}
\pgfplotsset{
width=8cm, height=15cm,
scale only axis,
no markers
}
%
%
\begin{axis} [
clip=false,
width=8cm,
hide y axis,
axis x line*=bottom,
xmin =0, xmax = 22,
ymin = -40, ymax = 0,
xtick={0,2,…,22},
minor xtick={0.2,0.4,…,21.8},
%ytick={0,-2,…,-40},
%minor ytick={-0.2,-0.4,…,-40},
xlabel = {$q_p$ (\si{\mega\pascal})},
]
\end{axis}
%
\begin{axis} [
clip=false,
height=15cm,
hide x axis,
axis y line*=left,
xmin =0, xmax = 22,
ymin = -40, ymax = 0,
ytick={0,-2,…,-40},
minor ytick={-0.2,-0.4,…,-40},
ylabel = \parbox{0.75cm}{\centering $y$ \\ \centering (\si{\meter})}
]
\end{axis}
%
%
\begin{axis}[
hide x axis,
hide y axis,
xmin=0, xmax=22,
ymin=-40, ymax=0
]
\tikzset{every mark/.append style={scale=0.5}}
\addplot[mark=o] coordinates{
(1,0)
(1.8,-0.2)
(1.6,-0.4)
(1.4,-0.6)
(0.8,-0.8)
(0.5,-1)
(0.7,-1.2)
(0.4,-1.4)
(1.3,-1.6)
(1.8,-1.8)
(3,-2)
(4.6,-2.2)
(5,-2.4)
(1.4,-2.6)
(0.5,-2.8)
(0.5,-3)
(2.6,-3.2)
(2.8,-3.4)
(0.7,-3.6)
(0.4,-3.8)
(0.3,-4)
(0.2,-4.2)
(0.6,-4.4)
(0.8,-4.6)
(2,-4.8)
(2.7,-5)
(2,-5.2)
(0.9,-5.4)
(1.6,-5.6)
};
\end{axis}
%
%
\begin{axis} [
clip=false,
width=8cm,
yshift=-1.5cm,
hide y axis,
axis x line*=bottom,
xmin =0, xmax = 0.5,
ymin = -40, ymax = 0,
xtick={0,0.1,…,0.5},
minor xtick={0.025,0.05,…,0.5},
xlabel = {$q_s$ (\si{\mega\pascal})},
]
\end{axis}
\begin{axis} [
hide x axis,
hide y axis,
xmin=0, xmax=0.5,
ymin=-40, ymax=0,
]
%\tikzset{every mark/.append style={scale=1}}
\addplot+ coordinates{
(0.01591,0)
(0.0282,-0.2)
(0.03059,-0.4)
(0.01781,-0.6)
(0.01548,-0.8)
(0.00704,-1)
(0.01393,-1.2)
(0.00587,-1.4)
(0.0238,-1.6)
(0.07299,-1.8)
(0.11651,-2)
(0.20558,-2.2)
(0.20811,-2.4)
(0.0589,-2.6)
(0.02092,-2.8)
(0.01825,-3)
(0.10927,-3.2)
(0.12132,-3.4)
(0.02564,-3.6)
(0.01713,-3.8)
(0.0133,-4)
(0.00709,-4.2)
(0.02641,-4.4)
(0.0334,-4.6)
(0.0758,-4.8)
};
\end{axis}
\end{tikzpicture}
\end{figure}
`
A questo punti i miei problemi sono in realtà 3:- Perché il secondo asse delle x che creo non vede come ultimo valore stampato a video 0.5?
- perché, pur usando prima di addplot, il comando \tikzset{every mark/.append style={scale=0.5}} non ottengo i cerchietti nei punti?
- Come posso inserire una legenda unica che mostri la spiegazione delle 2 curve?
L’ultimo punto forse richiede una piccola spiegazione aggiuntiva, avevo scritto:
`
(0.0758,-4.8)
};
\legend{$q_p$, $q_s$}
\end{axis}
\end{tikzpicture}
\end{figure}
`
Essendoci tuttavia un solo grafico dentro all’ultimo gruppo di axis mi riporta solo una riga. Spero di essere riuscito a spiegarmi, ringrazio fin da ora chiunque possa aiutarmi in questo mio piccolo problema.
- Devi essere connesso per rispondere a questo topic.