Gnuplot:X轴上的CSV和日期

时间:2018-01-20 14:01:45

标签: gnuplot

我想绘制存储在CSV文件中的加密货币数据。

这就是CSV文件当前的内容:

Date,Total,XMR,ETH,BTC,BCH
2018-01-20 14:28:09,-48.31496473496111,-2.618473974057121,9.759254879456023,-32.73371338624,-22.72203225412001
2018-01-20 14:32:42,-48.70059864440001,-2.6060653245296663,9.414353657705647,-32.67846583748799,-22.830421140088
2018-01-20 14:35:22,-48.63036074628374,-2.5440902562853935,9.414353657705647,-32.67846583748799,-22.822158310216004
2018-01-20 14:39:31,-48.541251796683724,-2.5440902562853935,9.414353657705647,-32.58935688788797,-22.822158310216004

到目前为止,这是我的gnuplot脚本:

set key inside bottom right
set title 'Revenues'
set datafile separator ','
set ylabel 'EUR'
set grid
plot for [col=2:5] "data.txt" using 0:col with lines lw 2 title columnheader

这就是结果:

enter image description here

但正如您在第一列中所看到的,每个数据集都有一个我也想使用的日期。它应该以较短的形式显示为x轴标签(例如18/20/01),并且轴也应该正确缩放。

我的方法是:

set xtics rotate
set timefmt '%Y-%m-%d %H-%M-%S'
set format x "%d-%m"
set xdata time
plot for [col=2:5] "data.txt" using 0:col:xtic(1) with lines lw 2 title columnheader

...导致......

enter image description here

正如您所看到的,x轴的标签是正确的列,但它既不是我想要的格式也不是它的缩放(提到我将最后一个日期更改为2019年)。

你能告诉我如何实现这个目标吗?

1 个答案:

答案 0 :(得分:2)

Gnuplot开始计算1的列:

set datafile separator ","
set timefmt '%Y-%m-%d %H-%M-%S'
set format x "%d-%m"
set xdata time
plot for [col=2:5] "data.txt" using 1:col