首页 > 解决方案 > 我从头开始构建 matplotlib 中的烛台图有对齐问题

问题描述

我正在尝试从头开始构建烛台图表,以便可以对其进行更好的自定义。这是我使用的文章的链接。https://medium.com/swlh/generating-candlestick-charts-from-scratch-ef6e1d3cf0e9

继承人的代码:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
import yfinance as yf
import numpy as np

df = yf.download('adaniports.ns', '2015-01-01', '2016-01-01')
ap = df.loc['2015-08': '2015-10', :].copy()
ap.rename(columns={'Adj Close': 'Adj_close'}, inplace= True)
ap.reset_index(inplace= True)
ap['Days_num'] = ap.Date.apply(lambda x: x - ap.Date[0])
ap.Days_num = ap.Days_num.apply(lambda x: x/np.timedelta64(1, 'D')).astype(int)

fig, ax = plt.subplots(figsize= (12, 8))
ax.plot([ap.Days_num, ap.Days_num], [ap.High, ap.Low], color= 'k')
for x in range(len(ap.index)):
    if ap.Close[x] > ap.Open[x]:
     color= 'g'
    else:
     color= 'r'
   rec = mpl.patches.Rectangle((ap.Days_num[x] - 0.25, ap.Open[x]), 0.5, (ap.Close[x] - 
   ap.Open[x]), color= color, zorder= 3)
   ax.add_patch(rec)

fig.tight_layout()
plt.show()   

这是输出:在此处输入图像描述

所有的蜡烛都没有在中间与 vic 正确对齐。无论如何要修复它?

标签: pythonmatplotlib

解决方案


我已经弄清楚了这个对齐问题的原因。只是扩大无花果纵横比就可以了。我现在已将其从 (12, 8) 更改为 (20, 7)。这是我必须做的唯一重大改变才能让它发挥作用。这是我的自定义烛台图表的最终输出: 在此处输入图像描述


推荐阅读