Matplotlib使用Twinx绘制轴时出现问题

时间:2020-01-23 15:48:23

标签: python matplotlib

我是matplotlib的新手。我正在用Python编写Stock Market应用程序。

在应用程序中,我有一个带有2个不同折线图的图表要显示。一个是“价格”,另一个是“ VVAP指标”。我正在尝试使用matplotlib twinx()函数对其进行绘制,以使它们都共享相同的x轴。

问题是:价格数据集的长度为100,而“ VVAP指标”数据集的长度仅为1(随着从服务器中获取并计算新数据,它将增加到100)。

这是我的代码:

 self.figure, ax1 = plt.subplots()
 ax1.plot(prices_dataframe, 'b-')
 ax2 = ax1.twinx()
 ax2.plot(vwaps_dataframe, 'r-')
 plt.autoscale(enable=True, axis='x')
 plt.title("Intraday with VWAP")
 plt.grid()
 helper.chart_figure = self.figure

这是数据集:

enter image description here

这是我在图表上看到的:

enter image description here

我该如何解决?我是否需要用虚拟行填充第二个数据集?还是对我的问题有更简单,更优雅的解决方案?任何帮助将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

我在数据集图像中找到了解决该问题的方法:

enter image description here

第一个数据集具有可识别时区的datetime对象,而在第二个数据集中,我将日期和时间作为字符串插入。

我还必须添加以下行以使x轴在我的时区中显示正确的时间:

ax1.xaxis_date(tz='Asia/Kolkata')
ax2.xaxis_date(tz='Asia/Kolkata')