我有这些data.txt:
[1384395497218,679],[1384399097218,679],[1384402697218,679]...
[timestamp,value]
首先是时间戳1384395497218 - > 1384395497.218 - >星期四,2013年11月14日02:18:17 GMT。 第二个是计算的东西
我想在x轴上绘制带日期的线图,并在y轴上计数。我怎么能这样做?
Example:
x-axis = "14 November" y-axis = "679"..
答案 0 :(得分:2)
这是一种非常奇怪的输入格式。如果可以的话,你应该选择一个更适合的。 Gnuplot无法处理此问题,您必须在绘制数据文件之前对其进行预处理。这可以做到,例如使用perl
和正则表达式如下:
如果您的数据文件test.txt
的值为
[1384395497218,679],[1384399097218,679],[1384402697218,679]
并在命令行中使用以下调用:
perl -pe 's/\[(\d+)([\d]{3}),(\d+)\],?/\1.\2 \3\n/g' test.txt
您将数据格式化为
1384395497.218 679
1384399097.218 679
1384402697.218 679
可以用gnuplot绘制。要在运行中完成预处理,请使用语法
plot '< perl ...'
您的数据的简短脚本例如:
set timefmt '%s'
set xdata time
set format x '%d %B'
set xtics 24*60*60
getdata = '< perl -pe ''s/\[(\d+)([\d]{3}),(\d+)\],?/\1.\2 \3\n/g'' test.txt'
plot getdata using 1:2 with linespoints notitle
更多说明:
%s
读入时间戳,也可以包含十进制数字(您也可以删除它们。set xtics 24*60*60
每天设置一个主要抽搐set format x '%d %B'
,您可以为x轴上的时间输出格式设置不同的格式。4.6.4的结果是: