skevin93″ post=87140Salve a tutti. Sto componendo un file dove ho la necessità di aggiungere dei grafici. Fin qui tutto bene, perché tra tikz e pgfplots vado alla grande, ma mi si presenta un problema su di un grafico. Ho la necessità di porre una etichetta sull’asse delle y in posizione y=0. Se compilo il file, questo mi dà come risultato che l’etichetta non viene stampata. Con un po’ di prove sono riuscito a capire che questo è dovuto all’impostazione axis lines=middle, che non mi fa stampare l’etichetta nel punto perché giustamente c’è l’asse delle ascisse. Come posso bypassare il problema? Non ho trovato alcuna opzione di pgfplots che lo forzasse a stampare l’etichetta. Di seguito vi riporto un estratto compilabile:
`
\documentclass{standalone}
\usepackage{pgfplots}\begin{document}
\begin{tikzpicture}[font=\scriptsize]
\begin{axis}[width=5cm,domain=.5:3,xmin=0,ymin=-1,xmax=3.5,axis lines=middle,xlabel=$p$,ylabel=$\mu$,%
ytick={0},xtick={1},ylabel style={above left},xlabel style={below right},xticklabel={$p_0=\SI{1}{\bar}$},%
yticklabels={$\mu^\circ(T)$},xticklabel style={xshift=.5cm},yticklabel style={}]
\addplot+[no marks,smooth]{ln(x)} node[sloped,above,pos=.5]{$T=\text{costante}$};
\end{axis}
\end{tikzpicture}
\end{document}
`Grazie per la vostra disponibilità. 😀
Ciao.
Innanzi tutto ho riformattato il codice per renderlo più leggibile (è una regola importante quando il codice LaTeX si fa complesso):
`\documentclass[margin=1pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\usepackage{siunitx}
\begin{document}
\begin{tikzpicture}[font=\scriptsize]
\begin{axis}[%
width=5cm,
domain=.5:3,
xmin=0,
ymin=-1,
xmax=3.5,
axis lines=middle,
xlabel=$p$,
ylabel=$\mu$,
ytick=0,
xtick=1,
ylabel style=above left,
xlabel style=below right,
xticklabel={$p_0=\SI{1}{\bar}$},
yticklabels={$\mu^\circ(T)$},
xticklabel style={xshift=.5cm},
yticklabel style={},
clip=false]
\addplot+[no marks,smooth]
{ln(x)} node[sloped,above,pos=.5]
{$T=\:$costante};
\node[anchor=east] at (axis cs:0,0){label};
\end{axis}
\end{tikzpicture}
\end{document}`
Come vedi l’opzione chiave è “clip=false”. Infatti di default pgfplots taglia il disegno relativamente alla tela del grafico.
L’etichetta “label” è apposta con un comando ordinario di TikZ con l’unica particolarità che le coordinate sono espresse nel sistema “axis cs” — si tratta quindi dell’origine.
Naturalmente, quello di cui avevi bisogno stava scritto nella documentazione. In particolare, ti consiglio di leggere l’articolo sull’argomento sul numero 12 di ArsTeXnica di due noti autori… /wp-content/uploads/joomla-images/ArsTeXnica/AT012/grafici-pgfplots.pdf …
Happy pgfplots!
R.