我有一堆基本上是日期和时间的数据,我想使用gnuplot绘制一个数字。问题在于数据是从数据库中提取的,因此当一天中的某些事件的事件为零时,就不会创建任何行,因此我要馈送到gnuplot的'csv'文件在序列中存在间隔。

绘图配置:

set term jpeg medium size 800,600
set output "yesterday.jpg"
set datafile separator ":"
set title "Yesterday's Uploads"
set xlabel "Hour of day (Eastern)" offset 0,-2
set ylabel "Items per minute"
unset key
set bmargin 10
set xdata time
set timefmt "%m/%d/%Y-%H-%M"
set xtics rotate
set style fill solid 0.5
plot "yesterday.stats" u 1:2 w boxes

示例数据:
08/27/2013-23-00:34
08/27/2013-22-59:20
08/27/2013-22-58:79
08/27/2013-22-53:6
08/27/2013-22-52:24
08/27/2013-22-51:15
08/27/2013-22-50:12
08/27/2013-22-42:1
08/27/2013-22-38:58
08/27/2013-22-37:36

请注意缺少的分钟(例如,从38到42,从42到50),其中没有事件,因此没有数据库条目,因此在我的绘图输入文件中没有信息。

当我尝试使用上面的配置示例进行绘制时,“空白”显示为水平填充的条,即丢失数据的宽度。

我希望丢失的数据只是一个“零”,图中没有显示任何事件。我认为必须有一种方法可以在gnuplot中处理此问题,并希望在我编写一些脚本以将虚拟项插入到我的数据之前与大家进行检查。

有什么建议么?也许除了不“连接”数据点的框以外,还有另一种类型的绘图会导致那些奇怪的水平区域吗?

最佳答案

您可以通过using的第三个参数指定盒子的宽度:

plot "yesterday.stats" u 1:2:(50) w boxes

10-04 11:57
查看更多