在烛台图表上的Matplotlib半小时主要定位器

时间:2016-03-21 19:37:02

标签: python datetime matplotlib

我试图每隔半小时画一个带有历史数据的烛台图表,因此每30分钟使用一个主要定位器,并有一个10分钟的小定位器。我怎样才能达到半小时的主要定位器?

我目前有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。

谢谢!

1 个答案:

答案 0 :(得分:2)

你试过了吗?

dates.MinuteLocator(interval=30)

docsdates.MinuteLocator

  

interval是每次迭代之间的间隔。例如,如果interval=2,则标记每隔一次。

相关问题