2016-03-21 36 views
0

我試圖繪製每半小時歷史數據的燭臺圖,因此每30分鐘使用一個主要定位器並且有一個10分鐘的小定位器。我怎樣才能達到半小時的主要定位?Matplotlib半小時燭臺圖上的主要定位器

我目前有一個HourLocator但我想通過能夠爲自定義時間創建定位器來添加一些可擴展性,例如:每45分鐘或每10分鐘一個主要定位器。

這就是爲什麼我目前有:

halfHourFormatter = DateFormatter('%d %H:%M:%S') 

date1 = date2num(datetime.datetime.strptime("17/03/2016 22:30:00", "%d/%m/%Y %H:%M:%S")) 
date2 = date2num(datetime.datetime.strptime("17/03/2016 23:00:00", "%d/%m/%Y %H:%M:%S")) 

quotes = [ 
    (date1,86.439,86.574,86.423,86.545), 
    (date2,86.545,86.551,86.019,86.024) 
] 

fig, ax = plt.subplots() 
fig.subplots_adjust(bottom=0.2) 
ax.xaxis.set_major_locator(dates.HourLocator()) # Ideally: 30 Minute locator 
ax.xaxis.set_major_formatter(halfHourFormatter) 
ax.xaxis.set_minor_locator(<10 MINUTE LOCATOR>) 

candlestick_ohlc(ax, quotes, width=0.006,colorup='g', colordown='r') 

ax.xaxis_date() 
ax.autoscale_view() 
plt.setp(plt.gca().get_xticklabels(), rotation=45, horizontalalignment='right') 

plt.show() 

其他問題:有沒有辦法把燭臺標誌的基於數據的時間有多寬?在這種情況下,寬度爲0.006似乎適用於30分鐘滴答聲和每天滴答聲爲0.6。

謝謝!

回答

2

你試過:

dates.MinuteLocator(interval=30) 

docsdates.MinuteLocator

interval是每次迭代之間的時間間隔。例如,如果interval=2,標記每隔一秒發生一次。

+0

謝謝你的工作,跟進問題:你知道我是否可以將30分鐘的時間間隔設置爲每半小時開始一段時間?例如:從00:00:00開始,並將時間間隔設置爲每30分鐘一次,因此它看起來像:00:30:00,01:00:00,01:30:00,因此它固定爲數據點。 – romsearcher