绘制包含两条数据线和误差范围的图表

绘制包含两条数据线和误差范围的图表

我是 LaTeX 新手。我该如何绘制这些数据的图表?

files   1  5.350    ±0.011 ns/op
files 250  218.984  ±0.290 ns/op
files 500  545.244  ±3.784 ns/op
files 750  822.573  ±6.720 ns/op
files 1000 1192.118 ±2.157 ns/op

scanner   1  5.290 ±0.010 ns/op
scanner 250  263.696 ±0.818 ns/op
scanner 500  595.838 ±1.886 ns/op
scanner 750  961.677 ±2.784 ns/op
scanner 1000 1387.766 ±113.272 ns/op

因此,我希望文件和扫描仪都显示在同一个图表上,并且两者的误差范围也都显示出来。y 轴表示所用时间。x 轴表示 1、250、500、750、1000。因此,图表基本上有两条线 - 一条表示扫描仪,一条表示文件。每个图都应该是一个点,并且在同一张图表中显示误差范围,例如绘制标准误差。我还想用条形图制作一个折线图,例如pgfplots:带有置信区间的条形图(误差)

答案1

欢迎!这是为了让您有个开始。我不得不±从数据中删除符号。错误似乎总体上非常小。

\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\pgfplotstableread[header=false]{
files   1  5.350    0.011 ns/op
files 250  218.984  0.290 ns/op
files 500  545.244  3.784 ns/op
files 750  822.573  6.720 ns/op
files 1000 1192.118 2.157 ns/op
}\datasetA
\pgfplotstableread[header=false]{
scanner 1 avgt 10 5.290 0.010 ns/op
scanner 250 avgt 10 263.696 0.818 ns/op
scanner 500 avgt 10 595.838 1.886 ns/op
scanner 750 avgt 10 961.677 2.784 ns/op
scanner 1000 avgt 10 1387.766 113.272 ns/op
}\datasetB

\begin{tikzpicture}
\begin{axis}[ylabel={data},xtick=data,
    legend style={at={(0.05,0.95)},anchor=north west}]
\addplot[color=blue,error bars/.cd,y dir=both,y explicit] 
    table[x index=1,y index=2,y error index=3] 
    \datasetA; %
\addlegendentry{files}  
\addplot[color=red,error bars/.cd,y dir=both,y explicit] 
    table[x index=1,y index=4,y error index=5] 
    \datasetB; %
\addlegendentry{scanner}        
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容