pgfplot 中 addplot 的默认设置是什么?

pgfplot 中 addplot 的默认设置是什么?

考虑以下代码PGFPlots 画廊绘制多个图,名称分别为 d2、d3、d4、d5 和 d6。

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\pagestyle{empty}

\begin{document}
\begin{tikzpicture}
\begin{loglogaxis}[
    xlabel={Degrees of freedom},
    ylabel={$L_2$ Error}
]
\addplot coordinates {
    (5,8.312e-02)    (17,2.547e-02)   (49,7.407e-03)
    (129,2.102e-03)  (321,5.874e-04)  (769,1.623e-04)
    (1793,4.442e-05) (4097,1.207e-05) (9217,3.261e-06)
};

\addplot coordinates{
    (7,8.472e-02)    (31,3.044e-02)    (111,1.022e-02)
    (351,3.303e-03)  (1023,1.039e-03)  (2815,3.196e-04)
    (7423,9.658e-05) (18943,2.873e-05) (47103,8.437e-06)
};

\addplot coordinates{
    (9,7.881e-02)     (49,3.243e-02)    (209,1.232e-02)
    (769,4.454e-03)   (2561,1.551e-03)  (7937,5.236e-04)
    (23297,1.723e-04) (65537,5.545e-05) (178177,1.751e-05)
};

\addplot coordinates{
    (11,6.887e-02)    (71,3.177e-02)     (351,1.341e-02)
    (1471,5.334e-03)  (5503,2.027e-03)   (18943,7.415e-04)
    (61183,2.628e-04) (187903,9.063e-05) (553983,3.053e-05)
};

\addplot coordinates{
    (13,5.755e-02)     (97,2.925e-02)     (545,1.351e-02)
    (2561,5.842e-03)   (10625,2.397e-03)  (40193,9.414e-04)
    (141569,3.564e-04) (471041,1.308e-04) (1496065,4.670e-05)
};
\legend{$d2$,$d3$,$d4$,$d5$,$d6$}
\end{loglogaxis}
\end{tikzpicture}
\end{document}

结果是: 在此处输入图片描述

现在,我只想保留图 d4。因此,我删除了不需要的部分,如下所示:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\pagestyle{empty}

\begin{document}
\begin{tikzpicture}
\begin{loglogaxis}[
    xlabel={Degrees of freedom},
    ylabel={$L_2$ Error}
]
\addplot coordinates{
    (9,7.881e-02)     (49,3.243e-02)    (209,1.232e-02)
    (769,4.454e-03)   (2561,1.551e-03)  (7937,5.236e-04)
    (23297,1.723e-04) (65537,5.545e-05) (178177,1.751e-05)
};
\legend{$d4$}
\end{loglogaxis}
\end{tikzpicture}
\end{document}

结果如下: 在此处输入图片描述

如您所见,上图中 d4 的最终结果是不同的,例如,d4 在第一个图中和第二个图中分别是棕色和蓝色。原因是在第一个图中,d4 是第三个图,而在第二张图中,d4 是第一个图。我需要\addplot在两个图中对 d4 进行完全相同的设置。更准确地说,第二个图中的 d4 必须具有与第一个图相同的标记选项和颜色,例如,d4 在第二张图中也应该是棕色的。我尝试手动添加markcolor\addplot​​令\addplot[color=brown, mark options={fill=brown}, ...],但最终,我无法获得所需的输出。所以,我在想我们是否可以\addplot在第一个图中找到 d4 的默认设置并在第二个图中使用它们。

答案1

这是由默认值决定的cycle list,默认值为,在手册第 217 页底部(2020 年 2 月 29 日 1.17 版手册)的 4.7.7 节中color进行了描述。pgfplots循环列表 – 控制线型的选项。你会发现循环列表中的第三个条目是

brown!60!black,every mark/.append style={fill=brown!80!black},mark=otimes*\\

\\表示列表中该条目的结束。)

不过,另一个选择是使用cycle list shift,它可以让您在循环列表中跳转而无需添加任何图。\pgfplotsset{cycle list shift=2}在 之前添加\addplot

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\pagestyle{empty}

\begin{document}
\begin{tikzpicture}
\begin{loglogaxis}[
    xlabel={Degrees of freedom},
    ylabel={$L_2$ Error}
]

\pgfplotsset{cycle list shift=2}
\addplot coordinates{
    (9,7.881e-02)     (49,3.243e-02)    (209,1.232e-02)
    (769,4.454e-03)   (2561,1.551e-03)  (7937,5.236e-04)
    (23297,1.723e-04) (65537,5.545e-05) (178177,1.751e-05)
};
\legend{$d4$}
\end{loglogaxis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容