我必须创建一堆散点图,并且我想避免每次我认为它看起来不够好时必须手动重新定义所有图的标记......无论如何,我知道如何用包含的行来做到这一点在这篇文章中,但当我想使用时,我无法弄清楚
\addplot[only marks]
这是手动方式的 MWE
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[]
\addplot[blue, only marks,mark=*]
coordinates{(1,2)(2,3)};
\addplot[red, only marks,mark=square*]
coordinates{(1.2,2.2)(2.2,3.2)};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
或者...有没有办法以某种方式关闭穿过标记的线并使用
\pgfplotscreateplotcyclelist{}
谢谢!
答案1
您需要使用\addplot+[only marks]
:
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[]
\addplot+[only marks]
coordinates{(1,2)(2,3)};
\addplot+[only marks]
coordinates{(1.2,2.2)(2.2,3.2)};
\end{axis}
\end{tikzpicture}
\end{document}
将+
使用\addplot
所有默认选项(循环标记)加上您指定的选项(only marks
)。
为了进一步缩短它,如果您想only marks
在每个\addplot
内部使用该选项,tikzpicture
您可以使用:
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}[only marks]
\begin{axis}[]
\addplot
coordinates{(1,2)(2,3)};
\addplot
coordinates{(1.2,2.2)(2.2,3.2)};
\end{axis}
\end{tikzpicture}
\end{document}
或者您也可以将其作为选项axis
(\begin{axis}[only marks]
)。
要更改使用的循环列表,您可以使用cycle list name=<name>
选项中的选项axis
。预定义的循环列表列在包文档的相应部分中。
您还可以提供自己的循环列表:
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}[]
\begin{axis}[only marks,
cycle list={
{blue,mark=*},
{red,mark=square*,mark options={fill=green}},
{mark=o},
{yellow,mark=+},
}
]
\addplot
coordinates{(1,2)(2,3)};
\addplot
coordinates{(1.2,2.2)(2.2,3.2)};
\end{axis}
\end{tikzpicture}
\end{document}
最后:您可以用一个名称保存此循环列表,以便使用以下cycle list name
命令重复使用它:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotscreateplotcyclelist{foo}{
{blue,mark=*},
{red,mark=square*,mark options={fill=green}},
{mark=o},
{yellow,mark=+},
}
\begin{document}
\begin{tikzpicture}[]
\begin{axis}[only marks,
cycle list name=foo
]
\addplot
coordinates{(1,2)(2,3)};
\addplot
coordinates{(1.2,2.2)(2.2,3.2)};
\end{axis}
\end{tikzpicture}
\end{document}
您也可以only marks
在其中的每个元素中指定键\pgfplotscreateplotcyclelist
(或者仅在某些元素中指定)。