带符号 x 坐标的箱线图

带符号 x 坐标的箱线图

我想使用使用 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}

相关内容