绘制具有严格分辨率的烛台 - 理解“宽度”参数

时间:2014-01-31 18:22:43

标签: python numpy matplotlib

我一直在使用烛台数据的教程,它们适用于日常图表。不过,我猜,因为它们依赖于缺省行为由matplotlib.finance烛台功能,有个我丢失在我的理解它切换到盘中。

我的数据看起来像这样(但我在调用finance.candlestick之前将日期/时间转换为数字)

                           high         low        open       close  volume        vwap
2013-09-18 18:05:00  126.343750  125.468750  125.468750  126.046875     721  126.285909
2013-09-18 18:10:00  126.296875  126.078125  126.078125  126.187500     271  126.194649
2013-09-18 18:15:00  126.234375  125.843750  126.234375  125.843750      83  126.157003
2013-09-18 18:20:00  125.984375  125.953125  125.953125  125.953125     505  125.953311
2013-09-18 18:25:00  126.250000  126.250000  126.250000  126.250000       1  126.250000
2013-09-18 18:30:00  126.250000  126.250000  126.250000  126.250000       0  126.250000

我正在使用的代码(剥离了我所做的所有尝试)如下:

fig = plt.figure(figsize=(10, 5))
ax = fig.add_axes([0.1, 0.2, 0.85, 0.7])
# customization of the axis
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.tick_params(axis='both', direction='out', width=2, length=8,
               labelsize=12, pad=8)
ax.spines['left'].set_linewidth(2)
ax.spines['bottom'].set_linewidth(2)

ax.set_ylabel('Quote ($)', size=20)

ax.xaxis.set_major_locator(fiveminutelocator)
ax.xaxis.set_minor_locator(oneminutelocator)

# candlestick call requires the following format:
#    (time, open, close, high, low, ...)
print(bars.to_records())
bars.index = bars.index.map(date2num)
candle_bars = bars[ ['open', 'close', 'high', 'low' ] ]
candle_bars = map(list, candle_bars.to_records())
finance.candlestick(ax, candle_bars, width=0.1, colorup='g', colordown='r')
plt.show()

结果图如下:

Plot

编辑: 问题在于我缺乏的是我收集的单位为英寸,“figure.dpi”,并获得通过在Line2D中和长方形为matplotlib补丁宽度参数“figure.size”之间的关系的理解。

我不太清楚这种关系是如何起作用的。一个较小的范围中的时间(即10名毫秒巴,10秒的总范围)需要在finance.candlestick情节一个微小的宽度(0.000005似乎工作)。较大的时间范围(日期栏和数月的数据)可以使用默认宽度0.8。

所以我不明白的是宽度的测量值。它被描述为“点”。然而,在图中摆弄DPI似乎并不像我希望它那样做。

0 个答案:

没有答案