首页 > 解决方案 > matplotlib烛台_ohlc函数上奇怪的随机宽度

问题描述

我使用candlestick_ohlcmatplotlib 绘制短烛台图案,我有widthas的设置0.01。并且总是画 6 支蜡烛。

大多数情况下,条形图看起来与预期一样,但每张图像中有五分之一(或多或少)是用更大的宽度绘制的,这会破坏图表。

图例

这是我如何使用函数的示例:

candlestick_ohlc(ax1, candles, width=0.01,colorup='green', colordown='red')

以及正在处理的数据示例:

[[7.37151000e+05 1.30622000e+00 1.30658000e+00 1.30597000e+00  1.30610000e+00]
 [7.37151010e+05 1.30609000e+00 1.30619000e+00 1.30500000e+00  1.30595000e+00]
 [7.37151021e+05 1.30594000e+00 1.30621000e+00 1.30575000e+00  1.30602000e+00]
 [7.37151031e+05 1.30603000e+00 1.30644000e+00 1.30603000e+00  1.30632000e+00]
 [7.37151042e+05 1.30633000e+00 1.30648000e+00 1.30622000e+00  1.30648000e+00]
 [7.37151052e+05 1.30644000e+00 1.30661000e+00 1.30551000e+00  1.30553000e+00]]

[[7.37151010e+05 1.30609000e+00 1.30619000e+00 1.30500000e+00  1.30595000e+00]
 [7.37151021e+05 1.30594000e+00 1.30621000e+00 1.30575000e+00  1.30602000e+00]
 [7.37151031e+05 1.30603000e+00 1.30644000e+00 1.30603000e+00  1.30632000e+00]
 [7.37151042e+05 1.30633000e+00 1.30648000e+00 1.30622000e+00  1.30648000e+00]
 [7.37151052e+05 1.30644000e+00 1.30661000e+00 1.30551000e+00  1.30553000e+00]
 [7.37151062e+05 1.30553000e+00 1.30590000e+00 1.30529000e+00  1.30573000e+00]]

[[7.37151060e+05 1.30561000e+00 1.30561000e+00 1.30549000e+00  1.30551000e+00]
 [7.37151060e+05 1.30550000e+00 1.30568000e+00 1.30550000e+00  1.30568000e+00]
 [7.37151061e+05 1.30565000e+00 1.30580000e+00 1.30562000e+00  1.30580000e+00]
 [7.37151062e+05 1.30580000e+00 1.30583000e+00 1.30578000e+00  1.30578000e+00]
 [7.37151062e+05 1.30579000e+00 1.30590000e+00 1.30566000e+00  1.30573000e+00]
 [7.37151063e+05 1.30573000e+00 1.30574000e+00 1.30550000e+00  1.30561000e+00]]

标签: pythonmatplotlibfinance

解决方案


正如 ImportanceOfBeingErnest 所说:“在那些不起作用的情况下,您需要进一步减小宽度。更准确地说,宽度不应大于两个连续 x 数据点之间的差异。”

也就是说,有一个新版本的 matplotlib Finance 可以自动为您处理这个问题。您可以在此处找到新版本以及文档:

https://pypi.org/project/mplfinance/

安装: pip install --upgrade mplfinance

注意:包名不再有破折号或下划线:现在是 mplfinance(不是 mpl-finance,也不是 mpl_finance)


推荐阅读