数据
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;
给出了
它以某种方式省略了命令的第一句话。
我试图通过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;
但错了。
我想要像
这样的东西
其中堆叠的列如手册中所述,但总共100个单位。 我的实现似乎是错误的。可能的解决方案here。
如何在Gnulplot中获得堆积直方图?
答案 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)
为了获得行堆叠直方图,您只需进行非常小的更改(使用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