Gnuplot:如何制作直方图只有一些条形堆叠,其他不是?

时间:2013-11-21 19:53:46

标签: 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

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

1 个答案:

答案 0 :(得分:1)

以下是您实现这一目标的可能性。为此,您需要将A*值组合在数据文件中,然后是两个新行,然后是所有B*值:

A1 4
A2 3


B1 1 2
B2 2 3

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

然后绘制第一个直方图。这隐含地使用01等作为x值,但为其提供标签A1A2。对于B*值,您可以使用newhistogram创建新的直方图,并将其第一个x值设置为at0加一个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你得到:

enter image description here

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