我关于Stackoverflow的第一个问题。希望格式满足Stackoverflow的要求
我正在学习Python,并使用“mplfinance”绘制5分钟的股价,但x轴上的时间不对。我的测试代码如下。绘图的时间轴为“18:05、18:30、18:55、19:20、19:45、20:10、20:35”,数据文件中根本不显示。我从Yahoo那里提取了截至2020年12月4日(或12月5日)的3天数据,经过一些简单的处理后绘制了最后35个点。(如果在不同的日期运行程序,则时间轴将不同)
谢谢你的帮助和启发
import pandas as pd
import yfinance as yf
import mplfinance as mpf
def plot_5min_chart():
# 5-minute data
mdata = yf.download('DDD', period='3d', interval='5m')
mdata = pd.DataFrame(mdata)
mdata['10ma'] = mdata['Close'].rolling(window=10, min_periods=0).mean()
mdata['20ma'] = mdata['Close'].rolling(window=20, min_periods=0).mean()
mdata['50ma'] = mdata['Close'].rolling(window=50, min_periods=0).mean()
mdata.dropna(inplace=True)
mdata.to_csv('test_5minute.csv')
# plot 5-minute chart
mpf.figure()
ntl2 = 35
kwargs = dict(type='candle', volume=True, figratio=(8,5),
figscale=0.85, num_panels=3, panel_ratios=(6,2,2))
ap2 = [
mpf.make_addplot(mdata['10ma'].tail(ntl2), width=2, linestyle='-', color='lime', panel=0),
mpf.make_addplot(mdata['20ma'].tail(ntl2), width=2, linestyle='--', color='c', panel=0),
mpf.make_addplot(mdata['50ma'].tail(ntl2), width=2, linestyle='-', color='orange', panel=0),
]
titlem = '5-minute chart'
mpf.plot(mdata.tail(ntl2),**kwargs, addplot=ap2, style='charles', title=titlem,
savefig=dict(fname='5minutechart.png', dpi=800, pad_inches=8)
)
plot_5min_chart()
我认为这与这里报道的mplfinance中的一个已知错误相同:https://github.com/matplotlib/mplfinance/issues/236
此问题的修复程序现已发布。要获取最新代码,请执行以下操作:
pip install upgrade mplfinance
如果任何人依赖于旧行为(在datetime索引中使用时区信息(如果存在)来转换为UTC),他们可以通过在调用
mpf.plot()
时设置kwargtz_localize=False
来访问旧行为新的行为是忽略datetime索引中的tzinfo,并始终根据datetime索引中的本地时间进行绘图
相关问题 更多 >
编程相关推荐