用Gnuplot绘制日期和值的日事件图

4

我有这种格式的数据:

2011-06-22 22:33:19  23  15
2011-06-23 09:46:13  12  79
2011-06-24 12:31:09  31  4
2011-06-24 17:34:10  7   2
2011-06-25 16:42:43  44  14
2011-06-25 20:26:52  54  9
2011-06-26 19:34:29  217 28

如何使用Gnuplot创建每日活动的直方图?默认情况下,使用以下设置:

set xdata time
set timefmt "%Y-%m-%d %H:%M:%S"
set style data boxes
set grid
plot 'data' using 1:3 t "ins", \
     'data' using 1:4 t 'dels' 

这些框将彼此相邻。但我希望在0上保持平淡无奇的日子。就像StackOverflow中的声誉图表一样。如果某天没有任何内容,它应该在图表中留下一个空位。如果有一天有一个事件,那个框应该是这一天最大的宽度。如果有多于一个事件发生在同一天,它们都应该适合那个宽度。
设置boxwidth很棘手,因为任何值似乎都会给我1像素宽的“框”。
非常感谢。
1个回答

2
如果我理解正确,那么你想做的事情在gnuplot中可能不太可能实现。或者至少不是一种简单的方式。这就是为什么我认为你会遇到困难的原因:
你不能在同一个图中绘制不同宽度的箱形图。所以尝试在“非事件日”上绘制无箱形图,在有一个事件的日期上绘制单个列应该没有问题。但是在同一天绘制多个列,且多个事件发生时,会失败,因为:
1.您无法在同一图中设置不同的箱体大小。 2.您需要根据事件数量偏移同一天的箱子。
有解决这个问题的方法,例如绘制两个相同颜色的框并排放置,来“模拟”一天的单个框,然后在有两个事件的日期中使用较小的框宽度。但是这很快会变得非常麻烦和难以维护。
也许你想考虑使用其他的绘图样式?看看像这里的直方图。也许其中一种样式更适合你的数据。或者你可以考虑将图分成多个图吗?

如果不是“方框”样式也没关系。如果直方图可以有边框,那我就没问题了。我要试一下... - mike3996
那么 直方图 也不能帮我吗? :F 留空日期的想法是为了更容易地看到是否有较长的暂停。 - mike3996
在gnuplot中收集和组合多个条目并不容易。您需要使用awk的方法。这里有一些示例,您可以看看。当然,使用awk几乎没有任何限制。问题是,在使用gnuplot之前预处理数据可能更容易。 - Woltan
唉,那就这样吧——尽管我已经在使用awk来合并数据,但我和我的支持者们还是希望gnuplot能够从中处理。 - mike3996
根据这里评论区的讨论,我会接受这个。 - mike3996
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接