gnuplot xtic标签与日期错位

时间:2017-02-13 19:29:46

标签: date position gnuplot

通常没有设置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命令相同的格式。经过一个小时的运气,我能想到的每一个配置,是时候去外面寻找新的眼睛了。

1 个答案:

答案 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;
}