在 pgfplots 中更改制造商的全局设置不起作用

在 pgfplots 中更改制造商的全局设置不起作用

我经常会遇到需要绘图但没有作者的文档。在这种情况下,我全局设置了一个

\pgfplotsset{
     no markers
    }

但是,如果文件中有一些需要(仅)标记的特殊图,我会使用选项在本地执行此only marks操作。问题是,这与通过设置标记样式不起作用mark=。我的问题是为什么会出现这种情况以及如何解决。

这是一个简单的例子:

\documentclass[tikz]{standalone}

\usepackage{pgfplots}

\pgfplotsset{
 no markers
}

\begin{document}
\begin{tikzpicture}
  \begin{axis}
    \addplot gnuplot {x^2 + 2};
  \end{axis}
\end{tikzpicture}

\begin{tikzpicture}
  \begin{axis}
    \addplot[only marks,mark=star] gnuplot {x^2 + 2};
  \end{axis}
\end{tikzpicture}   

\end{document}

输出:

在此处输入图片描述 在此处输入图片描述

如果我注释掉该行,no markers我会得到:

在此处输入图片描述 在此处输入图片描述

答案1

来自手动的

/pgfplots/no markers(样式,无值)

一个键,用于覆盖 \addplot 之后选项列表循环列表设置的任何标记值。如果将此样式作为完整轴的参数提供,则会将其附加到每个轴绘图帖子,这样即使对于包含标记的循环列表,它也会禁用标记。

mark=star因此忽略该选项。尽管如此,还是使用no markersonly markers样式/tikz/every mark来绘制标记。

您可以every mark使用every mark/.style={mark=star}或本地更改样式mark options={mark=star}

\documentclass[tikz]{standalone}
\usepackage{pgfplots}

\pgfplotsset{
 no markers
}

\begin{document}
\begin{tikzpicture}
  \begin{axis}
    \addplot gnuplot {x^2 + 2};
  \end{axis}
\end{tikzpicture}

\begin{tikzpicture}
  \begin{axis}
    \addplot[only marks,mark options={mark=star}] gnuplot {x^2 + 2};
  \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容