Re: Problema etichetta grafico

#87678
robitex
Amministratore del forum
    Up
    0
    Down
    ::

    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.

    Go to top