使用gnuplot进行堆叠直方图

时间:2012-05-30 15:53:05

标签: gnuplot histogram

我正在尝试使用以下数据创建堆叠直方图:

8.01    1   5   1   
8.02    3   5   1
8.03    4   4   1
8.04    3   4   1
8.05    1   2   1

我试图改编第四个例子中的脚本,目前我正在使用它:

set title "Test"
set key invert reverse Left outside
set key autotitle columnheader
set style data histogram
set style histogram rowstacked
set style fill solid border -1
set boxwidth 0.75

plot 'test.dat' using 2:xtic(1),  '' using 2 title 'Col1', '' using 3 title 'Col2', '' using 4 title 'Col3'

我复制的部分我不确定是using 2:xtic(1)。我知道这使得它使用xtic值作为第一列,这就是我想要的。但我不知道using 2部分代表什么。这是脚本产生的屏幕截图:

enter image description here

图像上的一切都很好,除了红色条不应该在那里。有人可以向我解释为什么它会出现以及如何摆脱它?

1 个答案:

答案 0 :(得分:12)

using 2表示gnuplot将使用文件中的第二列来绘制正在绘制的数据。如果您正在绘制x数据与y数据,如果x数据位于第1列且y数据位于第2列,则命令为plot data using 1:2plot using 2将绘制y轴上第2列的数据,对于每个数据点,x坐标将增加1。

您会注意到绿色和红色条的大小相同:它们都使用第2列。如果您不想显示第一个(红色)条,则可以将plot命令更改为

plot 'test.dat' using 2:xtic(1) title 'Col1', '' using 3 title 'Col2', '' using 4 title 'Col3'

使用此命令,xtic标签将保持不变,并且第一个栏将不再存在。请注意,数据的颜色将随此命令而变化,因为绘制的第一个图形将为红色,第二个为绿色,第三个为蓝色。