Usando \ref em um ylabel de um pgfplot

Usando \ref em um ylabel de um pgfplot

Quando utilizo \labele \refpara distinguir dois eixos y, as marcas desenhadas por \refnão ficam mais nas linhas após girá-lo junto com o restante do rótulo (veja o exemplo abaixo). Alguma ideia?

\documentclass{article}

\usepackage{pgfplots}

\begin{document}
  \begin{tikzpicture}
    \begin{axis}[axis y line*=left, scale only axis,
                 ylabel={estimation 2 \ref{pgf:allsamples}}]
      \addplot[blue,mark=+] table {data2.csv};
      \label{pgf:allsamples}
    \end{axis}
    \begin{axis}[axis y line*=right, scale only axis,
             ylabel={estimation 1 \ref{pgf:swingvotes}}, ylabel near ticks]
      \addplot[red,mark=x] table {data1.csv};
      \label{pgf:swingvotes}
    \end{axis}
  \end{tikzpicture}
\end{document}

ref não funciona como esperado

Responder1

Existe, de fato, um bug no pgfplots: o \refcomando verifica se "ele é invocado de dentro de uma imagem tikz". Mas esta verificação tem erros porque, beméinvocado de dentro de um tikzpicture, mas o tikzpicture foi interrompido para exibir um nó.

Como resultado do bug, os rótulos apresentam um deslocamento inesperado.

Até que o bug seja corrigido, você pode usar a seguinte solução alternativa:

\documentclass{article}

\usepackage{pgfplots}

\def\fixcheck{%
    \def\tikzifinpicture##1##2{##2}%
}%

\begin{document}
  \begin{tikzpicture}
    \begin{axis}[axis y line*=left, scale only axis,
                 ylabel={\fixcheck estimation 2 \ref{pgf:allsamples}}]
      \addplot[blue,mark=+] {x+5};
      \label{pgf:allsamples}
    \end{axis}
    \begin{axis}[axis y line*=right, scale only axis,
             ylabel={\fixcheck estimation 1 \ref{pgf:swingvotes}}, ylabel near ticks]
      \addplot[red,mark=x] {x};
      \label{pgf:swingvotes}
    \end{axis}
  \end{tikzpicture}
\end{document}

Em todos os seus rótulos, ele adiciona a \fixcheckmacro que simplesmente fará com que a verificação retorne "falso". Nesse caso, \refadicionará uma imagem tikz temporária.

informação relacionada