全局更改 pgfplots 中的绘图颜色

全局更改 pgfplots 中的绘图颜色

在 pgfplots 中,我可以像下面的示例一样在本地更改绘图的颜色。但是,有没有办法全局更改文档中所有绘图的颜色?

\documentclass{article}

\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
   \begin{axis}
      \addplot[color=red] coordinates{(0,0) (1,2)};
   \end{axis}
\end{tikzpicture}
\end{document}

答案1

一个好的方法是定义您自己的“循环列表”。

循环列表控制分配哪些颜色,除非您明确否决循环列表:

\documentclass{article}

\usepackage{pgfplots}

\pgfplotsset{
    cycle list={red\\yellow\\green\\},
}

\begin{document}

\begin{tikzpicture}
   \begin{axis}
      \addplot coordinates{(0,0) (1,2)};
      \addplot coordinates{(0,1) (1,3)};
   \end{axis}
\end{tikzpicture}

\end{document}

这里,第一个图没有参数并使用当前的第一个条目cycle list(即red)。第二个图使用 的第二个条目cycle list(即yellow)。

这允许定义一个全局的颜色。

如果全局cycle list只包含一个条目,则所有图都将使用该条目。

同时,您仍然可以通过写入\addplot[<customized>](将忽略循环列表条目)或\addplot+[<customized>]仍使用循环列表来推翻颜色定义,但它将附加自定义选项。

答案2

编辑:

Christian Feuersänger 的以下评论必须考虑到

解决方案是正确的 - 但每个轴图帖子都会将选项附加到每个图中。如果您希望一个图(例如)为绿色,则需要先清除每个轴图帖子

您可以通过以下方式设置every axis plot post

\documentclass{standalone}

\usepackage{pgfplots}
\pgfplotsset{%
 every axis plot post/.append style={red,mark=none}}

\begin{document}
\begin{tikzpicture}
   \begin{axis}
      \addplot coordinates{(0,0) (1,2)};
   \end{axis}
\end{tikzpicture}
\end{document}

在里面pgfplots 手册在第 236 页,您可以找到更多设置。例如every axis plot no

enter image description here

相关内容