2017-10-04 35 views
0

我仍然獲得在xticks漂亮圓潤DATATIME工作: rounding datetimes in xticks matplotlibmdates.DateLocator()提高NotImplemented錯誤

所以答案是罰款,我可以用

plt.gca().xaxis.set_major_locator(mdates.HourLocator()) 

得到全面小時在xticks中。

但是,如果我簡單地做

plt.gca().xaxis.set_major_locator(mdates.DateLocator()) 

它給:

File "/python/anaconda-2.7.11-64/lib/python2.7/site-packages /matplotlib/ticker.py", line 1289, in __call__ 
    raise NotImplementedError('Derived must override') 
NotImplementedError: Derived must override 

難道真的不可能改變HourLocator()來DateLocator()? 我正在使用 matplotlib.__version__'2.0.2'

+1

也許嘗試'AutoDateLocator'?或者如果你知道你想要幾個月或幾年,試試'MonthLocator'或'YearLocator'? – tom

回答

1

您並非指使用DateLocator本身。這是matplotlib提供日期的所有其他定位器的基類。該matplotlib日期API頁lists the possible locators

這裏是所有日行情:

  • MinuteLocator:找到分鐘
  • HourLocator:定位小時
  • DayLocator:找到一個月
  • 的specifed天
  • WeekdayLocator:找到日的一週中,例如,MO,TU
  • MonthLocator:找到個月,例如,7月爲
  • YearLocator:找到幾倍於基數的年份
  • RRuleLocator:使用matplotlib.dates.rrulewrapper查找。 rrulewrapper是一個簡單的包裹在一個dateutil.rrule(dateutil)周圍,它允許幾乎任意的日期標記規範。看魯魯的例子。
  • AutoDateLocator:在自動縮放,這個類選秀權設置視圖限制和刻度位置最好MultipleDateLocator。

選擇其中任何一個,你會沒事的。

除了那些提到的,還有一個SecondLocator和 a MicrosecondLocator可用,這是沒有(良好)記錄。

+0

太棒了。謝謝。我做了一個錯誤的猜測 – ErroriSalvo

+0

如何在使用autodatelocator時設置所需刻度的最大數量? – ErroriSalvo

+0

[AutoDateLocator](https://matplotlib.org/api/dates_api.html#matplotlib.dates.AutoDateLocator)具有參數'maxticks'。它不起作用嗎? – ImportanceOfBeingErnest