我正在尝试绘制文本文件中的一些数据,并且希望能够使用自定义列表循环标记的样式。我能够让循环列表正常工作,但是当我添加误差线时,出现了问题。最初,我的代码如下:
\documentclass[11pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\pgfplotscreateplotcyclelist{mylist}{%
{black,mark=square,draw=none},
{black,mark=o,draw=none},
{black,mark=triangle,draw=none},
{black,mark=diamond,draw=none}}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
legend pos=south east,
legend entries={Trial 1,
Trial 2,
Trial 3},
cycle list name=mylist,
legend image post style = only marks
]
\foreach \yindex in {2,4,6}
\addplot table[x index = 0, y index = \yindex] {data.txt};
\end{axis}
\end{tikzpicture}
\end{document}
这产生了下面的图像:
然后,我做了以下更改,以便能够将错误列添加到我的图中,这导致图不包含任何标记信息,而是在没有标记的点之间画直线。
\foreach[evaluate=\yindex as \ynext using int(\yindex+1)] \yindex in {2,4,6}
\addplot [error bars/.cd,y dir=both,y explicit, x dir = both, x explicit]
table[x index = 0, x error index = 1, y index = \yindex, y error index = \ynext]
{data.txt};
有什么想法可能导致此问题和/或如何解决它?我将不胜感激,谢谢!
编辑:忘记包含正在加载的数据文件。如果感兴趣的话,它是一个简单的制表符分隔文件。交替列 (1,3,5,7) 对应于绘图值,(2,4,6,8) 对应于相关的误差线。第 1 列和第 2 列是 x 轴。
23 0.25 1.75 0.0625 1.625 0.0625 1.75 0.0625
25 0.25 1.75 0.0625 1.75 0.0625 1.875 0.0625
27 0.25 2.125 0.0625 2 0.0625 2.25 0.0625
29 0.25 2.5 0.0625 2.5 0.0625 2.5 0.0625
31 0.25 2.5 0.0625 2.5 0.0625 2.5 0.0625
33 0.25 2.5 0.0625 2.5 0.0625 2.5 0.0625
答案1
我可以通过将\addplot
命令更改为并在命令中\addplot+
添加参数来解决这个问题。希望这对其他人有所帮助!cycle list name
\addplot+
这是我的特定问题的最终代码:
\foreach[evaluate=\yindex as \ynext using int(\yindex+1)] \yindex in {2,4,6}
\addplot+ [cycle list name=mylist,error bars/.cd,y dir=both,y explicit,x dir = both, x
explicit] table[x index = 0, x error index = 1, y index = \yindex, y error index =
\ynext] {data.txt};