![在 pgfplots 中更改制造商的全局设置不起作用](https://linux22.com/image/308999/%E5%9C%A8%20pgfplots%20%E4%B8%AD%E6%9B%B4%E6%94%B9%E5%88%B6%E9%80%A0%E5%95%86%E7%9A%84%E5%85%A8%E5%B1%80%E8%AE%BE%E7%BD%AE%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我经常会遇到需要绘图但没有作者的文档。在这种情况下,我全局设置了一个
\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 markers
和only 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}