从该数据绘制Gnuplot中的堆积直方图

时间:2015-04-24 15:31:34

标签: plot gnuplot

数据

Year    Water Power     Wood Power
2025    58.1     41.9
2035    55.8     44.2
2050    50.6     49.4

代码

set style histogram columnstacked; 
set terminal qt size 560,270; 
set grid; 
set offset 1,1,0,0; 
plot 'RES.dat' u 1:3;

给出了

enter image description here

它以某种方式省略了命令的第一句话。 我试图通过plot 'RES.dat' u 3:key(1);设置密钥失败,我认为这不应该是必要的,因为在1:3中,密钥已经假设由第一列设置。

使用代码

进行另一次尝试
set terminal qt size 560,270; 
set grid; set offset 1,1,0,0; 
plot 'RES.dat' u 2 ti col, u 3:key(1) ti col;

但错了。

我想要像

这样的东西

enter image description here

其中堆叠的列如手册中所述,但总共100个单位。 我的实现似乎是错误的。可能的解决方案here

如何在Gnulplot中获得堆积直方图?

1 个答案:

答案 0 :(得分:1)

有几件事:

  • 您必须告诉gnuplot使用直方图,例如:

    set style data histogram
    
  • 绘制直方图时,不得指定x值。这是自动选择的(增加整数,从0开始)

  • 要使用带空格的列标题,必须用引号括起来。

这是一个完整的工作示例,用于获取列堆积直方图:

$data <<EOD
Year    "Water Power"     "Wood Power"
2025    58.1     41.9
2035    55.8     44.2
2050    50.6     49.4
EOD

set style histogram columnstacked
set style data histogram 
set key autotitle columnheader
set style fill solid noborder
set boxwidth 0.8
plot $data using 2, '' using 3:key(1)

enter image description here

为了获得行堆叠直方图,您只需进行非常小的更改(使用xtic代替key):

$data <<EOD
Year    "Water Power"     "Wood Power"
2025    58.1     41.9
2035    55.8     44.2
2050    50.6     49.4
EOD

set style histogram rowstacked
set style data histogram 
set key autotitle columnheader
set style fill solid noborder
set boxwidth 0.8
set offset 0,1,0,0
plot $data using 2:xtic(1), '' using 3

enter image description here