Python mplfinance绘图不';无法正确显示时间值

Python mplfinance绘图不';无法正确显示时间值,python,mplfinance,Python,Mplfinance,我关于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个点。(如果在不同的日期运行程序,则时间轴将不同) 谢

我关于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中的一个已知错误相同,报告如下:

此问题的修复程序现已发布。要获取最新代码,请执行以下操作:
pip安装--升级mplfinance

如果任何人依赖于旧行为(在datetime索引中使用时区信息时,使用时区信息转换为UTC),他们可以通过在调用
mpf.plot()
时设置kwarg
tz_localize=False
来访问旧行为


新的行为是忽略datetime索引中的tzinfo,并始终根据datetime索引中的本地时间进行绘图。

非常感谢,Daniel!这就解决了问题。