2016-03-21 23 views
0

私は、30分ごとのヒストリカルデータを持つローソクチックチャートを描画しようとしています。したがって、30分ごとにメジャーロケーターを使用し、マイナーロケーターは10分です。私はどのように30分の主要なロケータを達成することができますか?Matplotlib 30分ごとのメジャーロケーター

私は現在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() 

追加質問:データの時間に基づいて、燭台フラグの幅を設定する方法はあり

これは私が現在持っている理由とは?この場合、30分ティックでは0.006の幅が、デイティックでは0.6が有効です。

ありがとうございます!

dates.MinuteLocator(interval=30) 

docsからdates.MinuteLocatorへ:

答えて

2

はあなたが試さ持っ

intervalは、各繰り返しの間隔です。たとえば、interval=2の場合は、1秒おきにマークを付けます。

+0

ありがとうございました。私は30分の間隔を30分間隔で設定することができるかどうか知っていますか?例:00:00:00に開始し、その後30分ごとに間隔を設定すると、00:30:00、01:00:00、01:30:00のようになりますので、データに固定されますポイント。 – romsearcher

関連する問題