pgfplots 中轴样式选项的顺序

pgfplots 中轴样式选项的顺序

我试图了解轴选项的应用顺序,以及什么会覆盖什么(在我使用style而不是的情况下append style)。

重新定义样式时,应覆盖先前的选项,但post似乎可以像 一样工作append。我注意到 #4 总是被忽略,即使它是唯一的,并且 #1 和 #2 会覆盖 #3,但如果我删除 #,则 #2 和 #3 可以一起工作。那么不同位置的两个键之间的层次结构是什么?

PS:我查看了第 361 页的手册...但我仍然不清楚

\documentclass{standalone}

\usepackage{tikz}
\usepackage{pgfplots}

\pgfplotsset{
  every axis/.style={...},        %1
  every axis post/.style{...},    %2
}

\begin{document}\begin{tikzpicture}[
    every axis/.style={...},      %3
    every axis post/.style={...}, %4
  ]
  \begin{axis}[ ... ]             %5
  \addplot {x};
\end{axis}

\end{tikzpicture}\end{document}

经过一些实验,它看起来像:

  • #4 中的选项始终被忽略
  • 首先应用 #3 中的选项
  • #1 中的选项覆盖 #3 中的所有选项
  • #2 中的选项附加到 #1 和 #3
  • #5 中的选项将附加到所有其他选项中

是这样吗?局部选项(#3 和 #4)难道不应该比全局选项(#1 和 #2)具有更高的优先级吗?append style为我的文档定义全局样式并为图片定义局部样式(可能包含更多axis环境)的最佳做法是什么(也考虑一下)?

编辑:全局设置(厚度,...)使用和本地设置(覆盖设置)的最佳解决方案是什么(有或没有post和) ?appendx|y axis line style\pgfplotssetaxis x|y lineaxis x|y line style

答案1

我在很大程度上同意您所写的内容,但我认为如果这些是选项,则当前形式的选项%3%4无效。这是因为,如果您将选项传递给环境,则您位于“目录”中。您可以通过添加前缀来更改路径。如果这样做,这些选项将在完整的中实现,即在每个轴中。因此,您可以称它们为“半本地”。另一方面,选项自动位于 pgfplots 的“正确路径”中。它们是全局的,而那些仅适用于相应的轴,并且可以称为“本地”(没有“半”)。以下 MWE 说明了这一点,其中我剔除了所有选项,因为它们没有添加任何有关局部性的信息(并且因为我没有看到自己要经历 5!=120 个选项 ;-)。pgfplotstikzpicturetikz/pgfplots/tikzpicture\pgfplots{...}\begin{axis}[...]post

\documentclass{standalone}

\usepackage{tikz}
\usepackage{pgfplots}
\tikzset{A/.style={color=blue},
B/.style={color=red},
C/.style={color=green!60!black}}


\begin{document}
\begin{tabular}{cc}
\pgfplotsset{every axis/.style=A}
\begin{tikzpicture}[/pgfplots/every axis/.style=B]
  \begin{axis}[C,title={ABC}]             
  \addplot {x};
    \end{axis}
 \end{tikzpicture}
 &
\pgfplotsset{every axis/.style=B}
\begin{tikzpicture}[/pgfplots/every axis/.style=A]
  \begin{axis}[C,title={BAC}]             
  \addplot {x};
    \end{axis}
 \end{tikzpicture}\\
\pgfplotsset{every axis/.style=B}
\begin{tikzpicture}[/pgfplots/every axis/.style=C]
  \begin{axis}[A,title={BCA}]             
  \addplot {x};
    \end{axis}
 \end{tikzpicture}
 &
\pgfplotsset{every axis/.style=A}
\begin{tikzpicture}[/pgfplots/every axis/.style=C]
  \begin{axis}[B,title={ACB}]             
  \addplot {x};
    \end{axis}
 \end{tikzpicture}\\
\pgfplotsset{every axis/.style=C}
\begin{tikzpicture}[/pgfplots/every axis/.style=A]
  \begin{axis}[B,title={CAB}]             
  \addplot {x};
    \end{axis}
 \end{tikzpicture}
 &
\pgfplotsset{every axis/.style=C}
\begin{tikzpicture}[/pgfplots/every axis/.style=B]
  \begin{axis}[A,title={CBA}]             
  \addplot {x};
    \end{axis}
 \end{tikzpicture}\\
\end{tabular}
\end{document}

在此处输入图片描述

相关内容