Gnuplot:如何制作一个只有一些条堆叠的柱状图,其他条则没有?

Gnuplot:如何制作一个只有一些条堆叠的柱状图,其他条则没有?,gnuplot,histogram,stackedbarseries,stacked-chart,Gnuplot,Histogram,Stackedbarseries,Stacked Chart,假设我有数据,我想分成不同的条,但其中一条被细分,如中所示。例如: A1 : 4 B1 : 1 2 A2 : 3 B2 : 2 3 然后我想(只)把B条叠起来。对于上面的数据,图表应如下所示: y o y o y o y o y o x o x o x A B A B 我该怎么做?我可以更改输入文件的格式(如果需要,甚至可以使用多个文件),但我真的希望有一个带有条簇的最终图形,其中每个簇的一些条是堆叠的,其他的不是。这里有

假设我有数据,我想分成不同的条,但其中一条被细分,如中所示。例如:

A1 : 4
B1 : 1 2

A2 : 3
B2 : 2 3
然后我想(只)把B条叠起来。对于上面的数据,图表应如下所示:

          y
o         y
o y     o y
o y     o x
o x     o x
A B     A B

我该怎么做?我可以更改输入文件的格式(如果需要,甚至可以使用多个文件),但我真的希望有一个带有条簇的最终图形,其中每个簇的一些条是堆叠的,其他的不是。

这里有一种可能的方法可以实现这一点。为此,您需要在数据文件中将
A*
值分组在一起,后面是两行新行,然后是所有
B*
值:

A1 4
A2 3


B1 1 2
B2 2 3
用两行新行分隔数据集允许您使用
index
语句访问它们。(使用两个文件也可以)

然后绘制第一个直方图。这隐式地使用
0
1
等作为x值,但给它们标签
A1
A2
。对于
B*
值,您使用
newhistogram
创建一个新的直方图,并使用
at
将其第一个x值设置为
0
加上一个
boxwidth

set style data histogram
set style histogram rowstacked
box_wd = 0.3
set boxwidth box_wd
set style fill solid
unset key

plot 'file.txt' using 2:xtic(1) index 0, \
     newhistogram at box_wd, \
     'file.txt' using 2:xtic(1) index 1,\
     '' using 3 index 1
使用4.6.4,您可以获得:


唯一的可能是,两个直方图的关键点用一条新线分隔。

这里有一个可能的方法可以实现这一点。为此,您需要在数据文件中将
A*
值分组在一起,后面是两行新行,然后是所有
B*
值:

A1 4
A2 3


B1 1 2
B2 2 3
用两行新行分隔数据集允许您使用
index
语句访问它们。(使用两个文件也可以)

然后绘制第一个直方图。这隐式地使用
0
1
等作为x值,但给它们标签
A1
A2
。对于
B*
值,您使用
newhistogram
创建一个新的直方图,并使用
at
将其第一个x值设置为
0
加上一个
boxwidth

set style data histogram
set style histogram rowstacked
box_wd = 0.3
set boxwidth box_wd
set style fill solid
unset key

plot 'file.txt' using 2:xtic(1) index 0, \
     newhistogram at box_wd, \
     'file.txt' using 2:xtic(1) index 1,\
     '' using 3 index 1
使用4.6.4,您可以获得:

唯一的可能是,两个直方图的关键点被一条新线分隔开