【问题标题】:Gnuplot: xtics Labels IntervalGnuplot:xtics 标签间隔
【发布时间】:2013-06-24 03:53:45
【问题描述】:

我有一个包含数千行的数据文件,如下所示:

Sat_May_25_09:38:22_2013 9 
Sat_May_25_09:38:35_2013 2 
Sat_May_25_09:38:55_2013 2 
Sat_May_25_09:39:30_2013 2 
Sat_May_25_09:40:25_2013 2 
Sat_May_25_09:41:21_2013 2 
Sat_May_25_09:42:16_2013 2 
Sat_May_25_09:43:11_2013 2 
Sat_May_25_09:44:07_2013 2 
Sat_May_25_09:45:03_2013 2 

第一列用于xaxis 标签,第二列用于yaxis 值。如何以xaxis 间隔绘制它?例如,在上面的数据集中,我只想添加奇数 xaxis 标签,但仍绘制每个 yaxis 值。换句话说,xaxis 标签的范围。

我怎样才能做到这一点?

【问题讨论】:

  • 为什么不使用 gnuplot 的时间数据绘制数据,然后让 gnuplot 选择 x 轴位置?
  • 我将时间格式更改为 Unix 纪元时间,这让事情变得容易多了,不仅在 gnuplot 上,而且在任何其他程序上。这是一个很好的日期测量标准。

标签: gnuplot labels


【解决方案1】:

假设您的数据在文件 t.dat 中

set xdata time
set timefmt "%b_%d_%H:%M:%S_%Y"
set format x "%d/%m/%y\n%H:%M"
plot "< sed 's/[^_]*_//' t.dat" using 1:2  title "y value"

timefmt 设置输入时间格式。不幸的是,日期名称不是一个可识别的值,因此 "&lt; sed 's/[^_]*_//' t.dat" 重定向了 sed 命令的输出,该命令将删除日期和第一个下划线作为输入。

format 将输出设置为日期换行时间,将其更改为您想要的格式。

【讨论】:

  • 我实际上已经发现了 timefmt 的那种无法识别的格式,这是一个缺点。不过,您的回答提供了有关 sed 管道的输入。很有趣。
猜你喜欢
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-13
  • 1970-01-01
相关资源
最近更新 更多