我想使用使用 pgfplots 绘制箱线图。作为附加功能,我希望我的 x 坐标是符号的。目前,只data/gp.dat
绘制了文件的最后一行。如果我使用数字索引并注释该symbolic x coords
行,它就可以正常工作。
数据文件仅包含两行:
a 119.94081065 131.10653025 114.344300825 144.7370542 77.9689369
b 231.9431665 243.81039325 212.0580355 271.590434 188.711343
这是我用来绘制图表的 LaTeX 代码:
\pgfplotsset{
% cf. https://tex.stackexchange.com/a/22618/15110
}
\begin{figure}
\center
\caption{This is a figure}
\label{fig:lbl}
\begin{tikzpicture}
\begin{axis}[
legend style={legend pos=outer north east},
symbolic x coords={a,b},
ylabel={time [s]},
xtick=data, enlarge x limits=0.5
]
\addplot [box plot median] table {data/gp.dat};
\addplot [box plot box] table {data/gp.dat};
\addplot [box plot top whisker] table {data/gp.dat};
\addplot [box plot bottom whisker] table {data/gp.dat};
\end{axis}
\end{tikzpicture}
\end{figure}
答案1
这是因为,如果数据表的第一行包含非数字字符(a
在本例中为),PGFplots 默认假定此行包含列名。您可以使用以下方式更改该行为table/header=false
:
\begin{document}
\begin{tikzpicture}
\begin{axis} [
enlarge x limits=0.5,
xtick=data,
symbolic x coords={a,b},
table/header=false
]
\addplot [box plot median] table {testdata.dat};
\addplot [box plot box] table {testdata.dat};
\addplot [box plot top whisker] table {testdata.dat};
\addplot [box plot bottom whisker] table {testdata.dat};
\end{axis}
\end{tikzpicture}
\end{document}