mpld3 无法正确在 x 轴上显示日期

tzo*_*zou 5 python date matplotlib axis-labels mpld3

我正在使用 matplotlib 从数据库绘制一个大型数据集,并使用 mpld3 将图形传递到浏览器。X 轴上有日期。这里的问题是,虽然在没有 mpld3 的情况下绘图工作正常,但当我使用它时,日期显示不正确。

这是我的代码:

date1 = '2015-04-22 20:28:50'
date2 = '2015-04-23 19:42:09'

db = Base('monitor').open()
result_set = db.select(['MeanVoltage','time'],"time>=start and time<=stop",  start=date1, stop=date2)

V = [float(record.MeanVoltage) for record in result_set if record != 0]
Date = [str(record.time) for record in result_set]


dates = [datetime.datetime.strptime(record, '%Y-%m-%d %H:%M:%S') for record in Date]
dates = matplotlib.dates.date2num(dates)

fig, ax = plt.subplots()
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d/%Y %H:%M:%S' ))

plt.gcf().autofmt_xdate()
ax.plot(dates,V)
#mpld3.fig_to_html(fig)
#mpld3.show(fig)
plt.show()
Run Code Online (Sandbox Code Playgroud)

完美地显示了情节,如下所示: 第一个数字

现在,如果我只注释掉这一行:

plt.show()
Run Code Online (Sandbox Code Playgroud)

并取消注释这两个:

mpld3.fig_to_html(fig)
mpld3.show(fig)
Run Code Online (Sandbox Code Playgroud)

该图在浏览器中显示如下: 第二个数字

正如您所看到的,唯一的问题是日期在 x 轴上的显示方式。有什么办法可以克服吗?

小智 0

在创建 HTML 图窗之前,添加以下行以指定它是日期轴:

ax.xaxis_date()
Run Code Online (Sandbox Code Playgroud)