4

我在文本文件中有一些温度数据,我想用“盒装”图表示它,像直方图一样显示每天的温度。

23 10 2012 12.3
28 10 2012 14.1
30 11 2012 30.4
...

我试图用一个简单的 gnuplot 脚本来表示它,如下所示:

set terminal png enhanced font font_file size size_x, size_y tiny
set xdata time
set timefmt "%d %m %Y"
set format x "%d"
set boxwidth 0.9 relative
plot u 1:4 w boxes

我想将没有可用数据的日子留空,但 gnuplot 会为这些日子提供数据可用的最后一天的值。例如,在我之前写的数据文件中,gnuplot 会给出 12.3 到 10 月 23 日,但我想留下这个空白没有任何栏。

有没有办法得到这个?我已经放弃了直方图表示,因为我读过它与时间数据不兼容。

先感谢您

4

1 回答 1

3

你的问题是线路set boxwidth 0.9 relative。Relative 表示您正在尝试填充相邻框之间 90% 的空间。你可能想设置一个绝对的boxwidth。如果您将脚本更改为set boxwidth 0.9 absolute,那么您将看到垂直线。这是因为在使用时间数据时,x 轴单位实际上是seconds,所以当您的 x 比例为多天时,您的框只有 ~1 秒宽。因此,要使每个框都成为一天的宽度,您将使用

set boxwidth 3600*24

这是完整的脚本:

set term png enhanced
set output 'foo.png'
set xdata time
set timefmt "%d %m %Y"
set format x "%d"
set boxwidth 3600*24
plot 'test.dat' u 1:4 w boxes

和输出:

在此处输入图像描述

于 2013-01-29T13:34:43.127 回答