comprimento do pino pgfplot

comprimento do pino pgfplot

Considere o seguinte exemplo do pgfplotmanual.

\begin{tikzpicture}
  \tikzset{
    every pin/.style={fill=yellow!50!white,rectangle,rounded corners=3pt,font=\tiny},
    small dot/.style={fill=black,circle,scale=0.3}
  }
  \begin{axis}[
    clip=false,
    title=How \texttt{axis description cs} works
  ]
  \addplot {x};

  \node[small dot,pin=120:{$(0,0)$}]
  \node[small dot,pin=-30:{$(1,1)$}]
  \node[small dot,pin=-90:{$(1.03,0.5)$}]
  \node[small dot,pin=125:{$(0.5,0.5)$}]
  \end{axis}
\end{tikzpicture}

Esse código fornece a seguinte imagem

imagem produzida pelo código acima

O que quero alterar e não encontrei no manual é alterar o comprimento dos pinos. Por exemplo, faça com que o texto do alfinete no meio pareça mais próximo do valor 5 do eixo y e faça com que a linha de conexão se estenda até esse ponto. O resultado que desejo aparece na imagem a seguir.

insira a descrição da imagem aqui

Isso é possível de alguma forma?

Responder1

Você pode usar pin distance:

\documentclass{article}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
  \tikzset{
    every pin/.style={fill=yellow!50!white,rectangle,rounded corners=3pt,font=\tiny},
    small dot/.style={fill=black,circle,scale=0.3}
  }
  \begin{axis}[
    clip=false,
    title=How \texttt{axis description cs} works
  ]
  \addplot {x};

  \node[small dot,pin=120:{$(0,0)$}] at (axis description cs:0,0) {};
  \node[small dot,pin=-30:{$(1,1)$}] at (axis description cs:1,1) {};
  \node[small dot,pin={[pin distance=2cm]125:{$(0.5,0.5)$}}] at (axis description cs:0.5,0.5) {};
  \end{axis}
\end{tikzpicture}

\end{document}

insira a descrição da imagem aqui

informação relacionada