Time Gnuplot:如何获得;“时间友好”;小时/分钟x轴刻度布局

Time Gnuplot:如何获得;“时间友好”;小时/分钟x轴刻度布局,time,format,gnuplot,Time,Format,Gnuplot,我很难在Gnuplot中获得“时间友好”的X轴布局 我需要提供一些一天内的数据;时间X数据以十进制形式表示,例如X=20.75表示20小时45分钟,范围通常为[0:24],但通常为子集,如[2.25:8.75] 默认的Gnuplot x轴布局将类似于[0:25]范围,主tics为0,5,10,15,…,这对于正常的十进制数据很好,但我希望它以通常的时钟方式选择更“时间友好”的内容,我指的是1,2,3或6小时的大刻度和1,5,15或30分钟的小刻度,根据范围适当选择 有人知道怎么做吗?这个怎么样

我很难在Gnuplot中获得“时间友好”的X轴布局

我需要提供一些一天内的数据;时间X数据以十进制形式表示,例如X=20.75表示20小时45分钟,范围通常为[0:24],但通常为子集,如[2.25:8.75]

默认的Gnuplot x轴布局将类似于[0:25]范围,主tics为0,5,10,15,…,这对于正常的十进制数据很好,但我希望它以通常的时钟方式选择更“时间友好”的内容,我指的是1,2,3或6小时的大刻度和1,5,15或30分钟的小刻度,根据范围适当选择

有人知道怎么做吗?

这个怎么样

set xtics 1, 0.25
不幸的是:

次要tic只能与等间距的主要tic一起使用。由于主tic可以通过
集合{x | x2 | y | y2 | z}tics
任意放置,因此如果主tic是显式
集合
,则不能使用次tic


您可以指定gnuplot打印标签时使用的tics

放置XTIC的示例如下所示:

set xtics (1, 2, 3, 6)
set xtics add 2
set grid
plot [0:24] sqrt(x)
上面的脚本将在位置1、2、3和6处放置tics,然后以2的间隔重复tics。那将是8点,10点,12点,…
设置网格
启用网格。可以找到文档


为了进一步改进绘图,您可能需要检查gnuplot的时间/日期数据功能。

尝试使用命令
set xdata time
指示X轴数据是时间值。然后,您可以使用类似于
set timemt“%H”
的方法告诉gnuplot如何解析时间值

例如,要绘制以下数据,第一列为以小时为单位的X值,第二列为Y轴值:

2.25 1
2.50 2
3.00 3
5.25 4
使用类似于:

set xdata time
set timefmt '%H'
plot 'myfile.dat' using 1:2

然后,gnuplot应将x tics正确设置为有规律的时间间隔。

使用gnuplot 4.6 patchlevel 0
我最终得到了这个shell脚本,它可以被调用,后跟所需的输出名称:

另存为makeChart.sh

path='/home/you/yourdir/dat2.txt'
回声“
设置终端未知
绘图“$path”u 1:2
min=(GPVAL_Y_min-1)
max=(GPVAL_Y_max+1)
设置终端pngcairo大小1400600增强字体“Helvetica,12”
设置时间表“%H:%M”
设置“温度”标签
设置xlabel“时间”
取消设置键
设置网格
设置标题“温度传感器1”
设置XTIC向右旋转
设置xtics 0180096000
设置扩展数据时间
设置MX2
设置格式x“%H:%M”
设置格式y“%.2f”
设置Y范围[最小值:最大值]
设置输出“/var/www/somefolder/$1”
用线“| gnuplot”绘制“$path”u 1:2索引0
dat2.txt中的一些示例数据:
一天中每5分钟的温度读数

00:05 74.75
00:10   74.85
00:15   74.85
.
.
.
23:30   75.65
23:35   75.65
23:40   75.52
23:45   75.65
23:50   75.65
23:55   75.75
像这样运行:
you@yourpc$sudo./makeChart.sh chartx.png


一直在玩xtics范围,直到我有30分钟的时间间隔。

不幸的是,当使用“%H”时,第一列的解析在到达小数分隔符时停止。您必须在第一列中使用类似于“2:15 2:30 3:00 5:15”的值和时间格式“%H:%M”。