configurationgnuplot来处理excel等时间序列

我正在尝试用gnuplot随时间绘制事件。 Excel的默认行为会生成更易读的图表。

我想从gnuplot的graphics看起来像Excel的。

set terminal png size 1200,800 set xdata time set timefmt "%Y-%m-%d_%H-%M" set output "graph.png" set xrange ["2015-02-01_08-54":"2015-02-01_23-20"] set yrange [0:70] set grid set xlabel "24-Hour" set ylabel "Events" set title "Events" plot "events.dat" using 1:2 index 0 title "events" with filledcurves ls 1 

我花了好几个小时来处理源数据和plot.conf,但是我不清楚Excel有什么不同。

Gnuplot输出:

gnuplot输出

Excel输出:

Excel输出

Excel用错误的x尺度绘制:它会忽略时间值,并将第一列中给出的值作为标签放在等距x值中。

要获得与gnuplot相同的行为,必须使用xticlabel将值放在第一列中作为标签,并使用行号(第0列)作为x值:

 set xtics rotate by 90 right noenhanced plot "events.dat" using 0:2:xticlabel(1) title "events" with filledcurves 

现在,这会给你带来不可读的标签,因为这太多了。 通过一些调整,你会得到一个更好的结果:

 set terminal pngcairo size 1200,800 set output "graph.png" set yrange [0:70] set grid y set xlabel "24-Hour" set ylabel "Events" set xtics out nomirror scale 0.5 rotate by 90 right font ',8' noenhanced plot "events.dat" using 0:2:xticlabel(int($0) % 5 == 0 ? strcol(1) : '') title "events" with filledcurves 

在这里输入图像描述

免责声明:请仅使用此脚本来了解Excel所做的事情,而不是重现它,因为它会给您的事件发生的实际时间跨度造成非常错误的印象!