通常没有设置x抽搐的问题,但这个对我来说是一个挑战的解决方案。
在每日时间序列中绘制一些值,因此使用命令
set xdata time
set timefmt "%m/%d/%Y" # the incoming dates are like 06/19/2016
set format x "%b %Y" # I want the tics to be like Jun 2016
我有一个箭头作为情节中的标记
set arrow 1 from "10/15/2016", 0 to "10/15/2016", 4
...所以我在2016年10月15日有一条垂直线。
但是我的xtics命令......
set xtics "10/15/2016", 2628000
...我应该在10月15日开始并在每个月的大约15日发生xtics。问题是,第一个xtic出现在哪里 10月1日,而不是第15个。随后,间距确实大约一个月,但它们都接近每个月的第一个月,而不是第15个月。
箭头只是为了给我一个10月15日的可视标记,它的命令使用与xtics命令相同的格式。经过一个小时的运气,我能想到的每一个配置,是时候去外面寻找新的眼睛了。
答案 0 :(得分:2)
除了对原始问题的评论之外,这种行为的原因似乎是Gnuplot源树的setup_tics
中的函数src/axis.c
为步骤的值设置(第862行)大于3600*24*28
相应长轴抽搐的时间等级TIMELEVEL_MONTHS
。
但是,正如time_tic_just
第1351行中函数src/axis.c
中的注释所暗示的那样(以及下面的代码确认),在这种情况下,tic位置确实舍入到该月的第一天:< / p>
/* skip it, I have not bothered with weekday so far */
if (level >= TIMELEVEL_MONTHS) {/* units of month */
if (tm.tm_mday > 25) {
tm.tm_mon++;
if (tm.tm_mon > 11) {
tm.tm_year++;
tm.tm_mon = 0;
}
}
tm.tm_mday = 1;
}