绘图标记显示为默认标记

绘图标记显示为默认标记

我的代码:

\documentclass{article}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\usepgflibrary{plotmarks}

\begin{document}

\begin{tikzpicture}
    \begin{axis}[ 
            grid=major, 
            x=5mm,
            y=5mm,
            xtick={-5,-4,...,5},     
            xmin=-5,
            xmax=5,
            xlabel={\tiny $x$},
            axis x line=middle,
            ytick={-10,-9,...,10},
            tick label style={font=\tiny},
            ymin=-10,
            ymax=10,
            ylabel={\scriptsize $f(x)$},
            axis y line=middle,
            samples=500,
            domain=-10:10,
            restrict y to domain=-20:20,
            no markers
        ]
        \addplot {x^5};
        \addplot [only marks,mark=o] coordinates { (1, 1) };
    \end{axis}
\end{tikzpicture}

\end{document}

问题

尽管我包括情节标记并设置标记=o,使用默认的黑色填充标记。

  • 图片1显示上述代码的结果。
  • 图片 #2显示出我想要的那种标记。
  • 图片#3显示删除后的代码结果no markers
  • 图片#4显示删除后的代码结果no markers 绘制的函数图。

1)在此处输入图片描述 2)在此处输入图片描述 3)在此处输入图片描述 4)在此处输入图片描述

答案1

手册pgfplots(v1.9,p158)对按键有如下说明no markers(感谢 percusse 提供的参考):

cycle list一个键,它将覆盖之后的选项列表设置的任何标记值\addplot。如果将此样式作为参数提供给完整的axis,它将被附加到 ,every axis plot post这样即使对于cycle list包含标记的 s 也会禁用标记。

这里的选项no markers是罪魁祸首:它覆盖了only marks, mark=o第二个中的选项\addplot

如果您不将其传递no markersaxis环境,而是+[mark=none]用于绘图,则会获得所需的输出。

编辑:如果您想知道,加号\addplot +[mark=none] ...是将mark=none选项附加到已隐式使用的选项,而不是覆盖它们。请参阅pgfplots文档中的子节 4.7.7。

在此处输入图片描述

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\usepgflibrary{plotmarks}

\begin{document}

\begin{tikzpicture}
    \begin{axis}[ 
            grid=major, 
            x=5mm,
            y=5mm,
            xtick={-5,-4,...,5},     
            xmin=-5,
            xmax=5,
            xlabel={\tiny $x$},
            axis x line=middle,
            ytick={-10,-9,...,10},
            tick label style={font=\tiny},
            ymin=-10,
            ymax=10,
            ylabel={\scriptsize $f(x)$},
            axis y line=middle,
            samples=500,
            domain=-10:10,
            restrict y to domain=-20:20,
        ]
        \addplot +[mark=none]{x^5};
        \addplot [only marks,mark=o] coordinates { (1, 1) };
    \end{axis}
\end{tikzpicture}

\end{document}

相关内容