Gnuplot--向xaxis添加太多数据
我有一个文件,是“日期,时间,温度”新行“日期,时间,温度”等 例如:Gnuplot--向xaxis添加太多数据,gnuplot,Gnuplot,我有一个文件,是“日期,时间,温度”新行“日期,时间,温度”等 例如: 12/01/19,23:30:13,74.23 12/01/19,23:45:13,74.33 12/02/19,00:00:13,74.20 12/02/19,00:15:13,74.06 我希望用Gnuplot来绘制它 图形部分表现得很好,在大多数情况下,它看起来能满足我的需要 然而,XTIC正在添加我没有为他们设置的附加信息,也不知道这些信息来自何方 代码: 我希望在x轴上看到的只是“00:00,04:00,08
12/01/19,23:30:13,74.23
12/01/19,23:45:13,74.33
12/02/19,00:00:13,74.20
12/02/19,00:15:13,74.06
我希望用Gnuplot来绘制它
图形部分表现得很好,在大多数情况下,它看起来能满足我的需要
然而,XTIC正在添加我没有为他们设置的附加信息,也不知道这些信息来自何方
代码:
我希望在x轴上看到的只是“00:00,04:00,08:00,12:00,16:00,20:00,00:00”
我从今天收集的数据中确实看到了这一点。
但从前一天收集的任何数据如下所示:
“01/01 00:00,01/01/04:00,01/01 08:00,01/01 12:00”
之后的每一天都会对x轴重复,直到它得到今天的数据,然后它会显示“00:00,04:00,08:00…”
那么,我如何才能得到它,使它不显示我的“01/01”在所有前几天?完全修改的代码。
我猜您尚未设置x轴的格式,例如设置格式x“%H:%M”
。
我认为set-xdata-time
有点“过时”,而是使用set-format x“%H:%M”timedate
并且您可能知道,时间从1970年1月1日起以秒为单位处理
这里是进一步调整的可能起点
代码:
### animated time data
reset session
set term gif size 480,320 animate delay 100
set output "Animation.gif"
set datafile separator ","
myTimeFmt = '%m/%d/%y,%H:%M:%S'
# generate some test data
StartDateTime = strptime(myTimeFmt, "12/18/19,00:00:00")
set print $Data
do for [day=0:7] {
do for [i=0:24*4-1] {
print strftime(myTimeFmt,StartDateTime+day*24*3600 + i*15*60). \
",".sprintf("%.1f",74+6*sin(i/12.)+rand(0)*3)
}
if (day<7) { print ""; print ""} # 2 empty lines at the end of the day
}
set print
set timefmt myTimeFmt
set format x "%H:%M" timedate
set xtics 4*3600
stats $Data u 0 nooutput
set key top center
do for [i=0:STATS_blocks-1] {
plot $Data u (timecolumn(1,myTimeFmt)):3 index i w lp pt 7 ti strftime("%b %d", StartDateTime+i*24*3600)
}
set output
### end of code
###动画时间数据
重置会话
设置术语gif大小480320动画延迟100
设置输出“Animation.gif”
设置数据文件分隔符“,”
myTimeFmt='%m/%d/%y,%H:%m:%S'
#生成一些测试数据
StartDateTime=strTime(MyTimeTime,“12/18/19,00:00:00”)
设置打印$Data
为[日=0:7]做的事{
[i=0:24*4-1]的do{
打印strftime(mytimemt,StartDateTime+day*24*3600+i*15*60)\
“,”.sprintf(“%.1f”,74+6*sin(i/12.)+rand(0)*3)
}
if(day)因此,我不希望在x轴上显示日期戳。plot命令中的“title”Dec.(i+1)”部分负责在图形中放置一个键,以显示日期。因此,我只希望在x轴上显示时间戳。如前所述,对于(今天)它会给出这些,但对于以前的任何日子,它都会在我的xtics上给出01/01前缀。对不起,我读得不够仔细…这是一个动画图形,每帧显示一天。我会修改代码…谢谢你,这正是我要找的,谢谢你对“设置格式x”的介绍
### animated time data
reset session
set term gif size 480,320 animate delay 100
set output "Animation.gif"
set datafile separator ","
myTimeFmt = '%m/%d/%y,%H:%M:%S'
# generate some test data
StartDateTime = strptime(myTimeFmt, "12/18/19,00:00:00")
set print $Data
do for [day=0:7] {
do for [i=0:24*4-1] {
print strftime(myTimeFmt,StartDateTime+day*24*3600 + i*15*60). \
",".sprintf("%.1f",74+6*sin(i/12.)+rand(0)*3)
}
if (day<7) { print ""; print ""} # 2 empty lines at the end of the day
}
set print
set timefmt myTimeFmt
set format x "%H:%M" timedate
set xtics 4*3600
stats $Data u 0 nooutput
set key top center
do for [i=0:STATS_blocks-1] {
plot $Data u (timecolumn(1,myTimeFmt)):3 index i w lp pt 7 ti strftime("%b %d", StartDateTime+i*24*3600)
}
set output
### end of code