2017-02-13 26 views
2

定位誤差通常不具有與x設置抽動,但對我來說這一個不畏解決問題。gnuplot的xtic標籤的日期

沿着繪製,每天的時間序列的一些值,因此導致了與命令

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

有趣的是,當人們使用'set xtics「10/15/2016」,3600 * 24 * 28-1「,而不是'3600 * 24 * 28」或更多時,抽搐看起來和預期一樣(gnuplot 5.0.5)。手動設置它們,例如'set xtics(「tick label」「10/16/2016」0)'雖然可以工作...... – ewcz

回答

2

除了原來的問題的評論,對這種現象的原因似乎是對步驟比3600*24*28的的TIMELEVEL更大的價值功能setup_tics在gnuplot的源代碼樹集(線862)的src/axis.c相應的長軸抽搐到TIMELEVEL_MONTHS

然而,由於在功能time_tic_just上線src/axis.c 1351顯示(下面的代碼確認和)評論,抽動位置在這種情況下確實四捨五入爲每月的第一天:

/* 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; 
}