gnuplot:带错误条的行堆叠条形图

gnuplot:带错误条的行堆叠条形图,plot,gnuplot,histogram,bar-chart,Plot,Gnuplot,Histogram,Bar Chart,我是gnuplot的新手。我想从具有三个分量和标准差的数据点生成图形。 我的数据如下所示: TYPE1 15 20 65 5 TYPE2 20 20 60 4 TYPE3 10 30 60 6 TYPE4 30 30 40 5 我想为每种类型绘制一个rowstacked条形图,其中3个组件堆叠在一起,顶部有一个errobar。 为此,我编写了以下脚本: set terminal png set output "sample.png" set boxwid

我是gnuplot的新手。我想从具有三个分量和标准差的数据点生成图形。 我的数据如下所示:

TYPE1   15  20  65  5
TYPE2   20  20  60  4
TYPE3   10  30  60  6
TYPE4   30  30  40  5
我想为每种类型绘制一个rowstacked条形图,其中3个组件堆叠在一起,顶部有一个errobar。 为此,我编写了以下脚本:

set terminal png
set output "sample.png"
set boxwidth 0.75 relative
set style fill   pattern 0 border
set style histogram rowstacked
set style data histograms
set xtics 1000 nomirror
set ytics 100 nomirror
set noytics
set mxtics 2
set mytics 2
set ytics 100
set yrange [0:150]
set ylabel "Y"
set xlabel "X"
set title "Sample graph"
plot 'data.dat' using (100*column(2)/(column(2)+column(3)+column(4))) t "A" , '' using (100*column(3)/(column(2)+column(3)+column(4))) t "B" , '' using (100*column(4)/(column(2)+column(3)+column(4))):xtic(1) t "C" 
这生成了一个如下所示的图形:


但我无法在第5列中的偏差值中得到每个条顶部的errorbar。我尝试了不同的方法使用rowstacked和errorbar样式的条形图,但没有成功。

为此,您必须知道,使用
柱状图
样式,框被放置在x位置
0
1
,等等,即在行号处

因此,对于
错误条
必须使用
列(0)
作为x坐标:

set terminal pngcairo
set output "sample.png"

set boxwidth 0.75 relative
set style fill pattern 0 border
set style histogram rowstacked
set style data histograms

set yrange [0:150]

set macros
scale = '100/(column(2)+column(3)+column(4))'

set bars 2.0
plot 'data.dat' using ($2 * @scale):xtic(1) t "A" , \
     '' using ($3 * @scale) t "B" , \
     '' using ($4 * @scale) t "C",\
     '' using 0:(100):5 with errorbars notitle lw 2 lt -1
4.6.3的结果是:

为了方便起见,我使用了宏
刻度
。宏的工作方式如下:在上面的脚本中定义一个字符串,如
scale='…'
。以后可以在任何表达式中用作
@scale
(必须启用
设置宏
)。然后,在执行相应的命令之前,替换
比例
字符串的内容