Matplotlib日期/时间随Qt4Agg后端消失

时间:2013-11-14 15:39:35

标签: datetime python-3.x matplotlib pyqt4

我目前正在开展一个项目,包括在PyQt4应用程序中绘制时间序列。我在64位Linux系统上使用matplotlib和python3.3的Qt4Agg后端。

绘图工作正常,但每当我尝试通过figureoptions按钮(带有绿色复选标记的按钮)更改某些内容时,x轴上的日期/时间格式将被浮动替换。

我已经包含了一些显示问题的简单代码(打开figureoptions对话框然后按apply!)

import matplotlib.pyplot as plt
import datetime

x=[]
y=[]
for hour in range(0,13):
    x.append(datetime.datetime(2013,11,14,hour))
    y.append(20)
plt.switch_backend('Qt4Agg')
plt.plot_date(x, y)
plt.show()

有谁知道如何改变这种行为?

我搜索过stackoverflow.com,matplotlib常见问题解答,文档和邮件列表,但找不到任何答案。

非常感谢你的帮助!谢谢!

1 个答案:

答案 0 :(得分:0)

只是为了记录我是如何解决这个问题的。

在我的课程中,我重新定义了enterEvent,以便每次鼠标进入窗口时都会更新xaxis。当然,这不适用于上述示例,但是在适当的类中,如下所示:http://eli.thegreenplace.net/files/prog_code/qt_mpl_bars.py.txt

def enterEvent(self, event):
    self.axes.get_xaxis()._update_axisinfo()
    self.canvas.draw()   

这不是完美的,而是一种解决方法!