我有许多大型数据文件,其中 x 行的范围在 0 到 z 之间。有没有一种简单的方法可以使用pgfplots
/在特定间隔处设置不同的标记TikZ
?如何生成一个图形,使得间隔 0、10、20、...、z 处的绘图标记例如为十字,而其余点的标记则为圆圈?
以下是可以帮助您入门的 MWE:
\documentclass{article}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=1.8}
\begin{filecontents*}{thePlot.dat}
x y
0 20.44
1 20.06
2 19.76
3 19.54
4 19.40
5 19.34
6 19.36
7 19.46
8 19.64
9 19.90
10 20.24
\end{filecontents*}
\begin{document}
\begin{figure}[]
\centering
\begin{tikzpicture}
\begin{axis}[
xlabel={$x$},
ylabel={$y$},]
\addplot+[only marks,mark=x]
table[x=x,y=y] {thePlot.dat};
\end{axis}
\end{tikzpicture}%
\caption{The caption.}
\end{figure}
\end{document}
答案1
您可以调整给出的代码PGFplots 标记第一点和最后一点为必填项
\documentclass[border=5mm]{standalone}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=1.8}
\pgfplotsset{
mark repeat*/.style 2 args={
scatter,
scatter src=x,
scatter/@pre marker code/.code={
\pgfmathtruncatemacro\usemark{
mod(\coordindex,#1)==0
}
\ifnum\usemark=1
\pgfplotsset{mark=#2}
\fi
},
scatter/@post marker code/.code={}
}
}
\begin{filecontents*}{thePlot.dat}
x y
0 20.44
1 20.06
2 19.76
3 19.54
4 19.40
5 19.34
6 19.36
7 19.46
8 19.64
9 19.90
10 20.24
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel={$x$},
ylabel={$y$},]
\addplot+[only marks, mark=o, mark repeat*={5}{x}]
table[x=x,y=y] {thePlot.dat};
\end{axis}
\end{tikzpicture}
\end{document}