使用自定义轴时在 pgfplot 上自动定位图钉

使用自定义轴时在 pgfplot 上自动定位图钉

我正在尝试自动标记几个图。为此,我刚刚发现pin将其添加到图中的选项。

此解决方案效果很好,而且是半自动化的。但是,当您重新定义轴时(通过设置xminxmaxyminymax),位置将停止工作,因为标签出现在原始位置而不是剪辑的位置。

那么,如何才能让pinpos关键字在定义的轴内而不是原始域内发挥作用呢?

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\pagestyle{empty}

\begin{document}
\begin{tikzpicture}
\pgfplotsset{
    every axis plot post/.append style=
        {mark=none}}

\begin{axis}[
  xmin=-10, xmax=10,
  ymin=-10, ymax=10,
  domain=-10:10,
    ]
\addplot {1.690476*x+0.238095} node [pos=1,pin={above left:{$1$}},inner sep=0pt] {};
\addplot {-57.000000*x+-20.000000} node [pos=1,pin={above left:{$2$}},inner sep=0pt] {};
\addplot {-0.590909*x+-0.113636} node [pos=1,pin={above left:{$3$}},inner sep=0pt] {};
\end{axis}
\end{tikzpicture}
\end{document}

自定义轴

在此处输入图片描述

未定义轴

在此处输入图片描述

答案1

我想我restrict y to domain现在明白你的问题了,使用默认的样本量,实际上在 y 域中不会产生任何数据。最简单的解决方案是手动为该函数指定不同的 x 域和/或增加采样频率,这样在受限的 y 域中也可以看见绘图。

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\pagestyle{empty}

\begin{document}
\begin{tikzpicture}
\pgfplotsset{
  every axis plot post/.append style=
  {mark=none}}

  \begin{axis}[
  restrict y to domain=-10:10,
  domain=-10:10,
  ]
  \addplot {1.690476*x+0.238095} node [pos=1,pin={below right:{$1$}},inner sep=0pt] {};
  \addplot[samples=200,domain=-1:0] {-57.000000*x+-20.000000} node [pos=1,pin={above left:{$2$}},inner sep=0pt] {};
  \addplot {-0.590909*x+-0.113636} node [pos=1,pin={above left:{$3$}},inner sep=0pt] {};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容