标记未显示在 pgfplots 中

标记未显示在 pgfplots 中

我正在尝试在指定点处绘制一条带有一些标记的简单线条,我经常用来绘制此类线条的代码似乎不起作用,我不知道为什么。特别是,我得到的是一条没有标记的线条。我将不胜感激任何帮助,代码如下:

\begin{tikzpicture}
    \begin{axis}[
        axis line style={draw=none},
        ticks=none,
        xmin=-5.5,
        xmax=5.5,
        ymax=-5,
        ymin=5,
        anchor=origin
    ]
        \addplot[]coordinates{(-5,0)(5,0)};
        \addplot[dotted]coordinates{(-5.5,0)(-5,0)};
        \addplot[dotted]coordinates{(5.5,0)(5,0)};

        \foreach \k in {-4,-1,...,4}{
            \addplot[mark=diamond*]coordinates{(\k,0)};
        }
        
    \end{axis}
\end{tikzpicture}

答案1

ymin一旦您修正和的值,ymax使得的值ymin低于的值ymax,标记就会显示出来。

但是您可能想要更改\foreach循环的值列表。如果您说{-4,-1,...,4},这将导致列表{-4, -1, 2}。为什么?好吧,使用第一个数字,您可以设置循环列表的起始值,即 -4。使用第二个数字,您可以设置第二个值和步长,也就是说,第二个值为 -4,步长为 3。使用三个点后面的数字,您可以设置值列表的最后一个值 4。但是由于前两个数字分别为 -4 和 -1 并且(因此)步长为 3,所以永远不会达到 4,因此循环将停止在 2,因为下一个值 6 已经大于您定义为最后一个值的值。

在下面的例子中,我将循环列表的步长改为 1:

\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        axis line style={draw=none},
        ticks=none,
        xmin=-5.5,
        xmax=5.5,
        ymin=-5,
        ymax=5,
        anchor=origin
    ]
        \addplot[]coordinates{(-5,0)(5,0)};
        \addplot[dotted]coordinates{(-5.5,0)(-5,0)};
        \addplot[dotted]coordinates{(5.5,0)(5,0)};

        \foreach \k in {-4,-3,...,4} {
            \addplot[mark=diamond*]coordinates{(\k,0)};
        }
    \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容