如何在Gnuplot中仅绘制yerrorbars的最大值?

如何在Gnuplot中仅绘制yerrorbars的最大值?,gnuplot,Gnuplot,我有一个图,显示了平均值和标准偏差。问题是某些行上存在高+/-误差,我只想显示标准偏差的最大值。因此,情节可以更加清晰。现在我使用的是linespoints和yerrorbars,绘图如下所示: 正如你所看到的,橙色和绿色的线条变化很大。我只想显示它们的最大值,这样绘图就更清晰了。我使用的脚本如下所示: plot \ t=0 "throughput-vs-networkbuffer-500K-8reducers-all.csv" every 30 u (t

我有一个图,显示了平均值和标准偏差。问题是某些行上存在高+/-误差,我只想显示标准偏差的最大值。因此,情节可以更加清晰。现在我使用的是
linespoints
yerrorbars
,绘图如下所示:

正如你所看到的,橙色和绿色的线条变化很大。我只想显示它们的最大值,这样绘图就更清晰了。我使用的脚本如下所示:

plot \
 t=0 "throughput-vs-networkbuffer-500K-8reducers-all.csv"         every 30 u (t==0?(t0=timecolumn(1,myTimeFmt),t=1):NaN, timecolumn(1,myTimeFmt)-t0):(column(8))             skip 2 notitle "no pre-agg"         with linespoints lc rgb '#E02F44' lt 1 lw 1.0 ps 0.7 pt 2 pi 30 axis x1y1 \
,t=0 "throughput-vs-networkbuffer-500K-8reducers-all.csv"         every 30 u (t==0?(t0=timecolumn(1,myTimeFmt),t=1):NaN, timecolumn(1,myTimeFmt)-t0):(column(8)):(column(9)) skip 2 title   "no pre-agg"         with yerrorbars  lc rgb '#E02F44' lt 1 lw 1.0 ps 0.7 pt 2 pi 30 axis x1y1 \
,t=0 "netBuffer-20K-200K-20K-8local-8global-onephase-all.csv"     every 28 u (t==0?(t0=timecolumn(1,myTimeFmt),t=1):NaN, timecolumn(1,myTimeFmt)-t0):(column(2))             skip 2 notitle "local mini-batch"   with linespoints lc rgb '#008000' lt 1 lw 1.0 ps 0.6 pt 6 pi 28 axis x1y1 \
,t=0 "netBuffer-20K-200K-20K-8local-8global-onephase-all.csv"     every 28 u (t==0?(t0=timecolumn(1,myTimeFmt),t=1):NaN, timecolumn(1,myTimeFmt)-t0):(column(2)):(column(3)) skip 2 title   "local mini-batch"   with yerrorbars  lc rgb '#008000' lt 1 lw 1.0 ps 0.6 pt 6 pi 28 axis x1y1 \
,t=0 "netBuffer-20K-200K-20K-8local-8global-twophase-all.csv"     every 26 u (t==0?(t0=timecolumn(1,myTimeFmt),t=1):NaN, timecolumn(1,myTimeFmt)-t0):(column(2))             skip 2 notitle "local agg 2-phases" with linespoints lc rgb '#FF780A' lt 1 lw 1.0 ps 0.6 pt 8 pi 26 axis x1y1 \
,t=0 "netBuffer-20K-200K-20K-8local-8global-twophase-all.csv"     every 26 u (t==0?(t0=timecolumn(1,myTimeFmt),t=1):NaN, timecolumn(1,myTimeFmt)-t0):(column(2)):(column(3)) skip 2 title   "local agg 2-phases" with yerrorbars  lc rgb '#FF780A' lt 1 lw 1.0 ps 0.6 pt 8 pi 26 axis x1y1 \
,t=0 "netBuffer-vs-latency-20K-200K-20K-8adcom-8reducers-all.csv" every 24 u (t==0?(t0=timecolumn(1,myTimeFmt),t=1):NaN, timecolumn(1,myTimeFmt)-t0):(column(4))             skip 2 notitle "AdCom pre-agg"      with linespoints lc rgb '#3274D9' lt 1 lw 1.0 ps 0.6 pt 5 pi 24 axis x1y1 \
,t=0 "netBuffer-vs-latency-20K-200K-20K-8adcom-8reducers-all.csv" every 24 u (t==0?(t0=timecolumn(1,myTimeFmt),t=1):NaN, timecolumn(1,myTimeFmt)-t0):(column(4)):(column(3)) skip 2 title   "AdCom pre-agg"      with yerrorbars  lc rgb '#3274D9' lt 1 lw 1.0 ps 0.6 pt 5 pi 24 axis x1y1 \
我通过添加4列对其进行了改进,其中第三列仅为平均值,第四列为平均值+标准偏差:

X:(column(2)):(column(2)):(column(2) + column(3))

然而,如果有一个更优雅的方式来做它,我感谢任何帮助

这里是使用带有向量的
设置样式箭头的
的半个错误条的最小示例。
尽管如此,我不确定仅仅显示“半”个错误条是否“实验上可以接受”

代码:

### "half" yerrorbars
reset session

$Data <<EOD
# x  y       yerr
1    0.10    0.05
2    0.20    0.10
3    0.45    0.21
4    0.67    0.28
5    0.44    0.11
EOD

unset key
set xrange[0:6]

set style arrow 1 size 0.1,90 lc "red"

plot $Data u 1:2 w lp pt 7, \
     ''    u 1:2:(0):3 w vectors as 1 
### end of code
####“半”耶罗罗巴
重置会话

$Data我看不到一个简化,你称之为“hack”,这就是yerrorbars的
对4列的简化。是的。你是对的。这是另一种形式的调用
yerrorbars
。但是,我希望只有最大值。我认为使用
(第(2)列+第(3)列)
已经是解决方案了……我不知道是否有替代方案……只有最大值是什么意思?最小值没有符号,最小值到平均值没有线,没有(错误)平均值处的符号,从平均值到最大值的线和从平均值到最大值的误差符号?平均值的线和从平均值到最大值的误差。使用
yerrorbars
隐藏最小值,您也会在平均值处得到一个误差符号。如果您想避免这种情况,您可以对从平均值到最大值的垂直线一起使用
矢量
最大错误符号的第i个点
,但这并不短且“优雅”。