【发布时间】:2015-01-07 00:13:57
【问题描述】:
我在 Python 中使用 boxplot(和 bxp)。为了与 pyQt 集成,我使用了来自 matplotlib example 和 stack 的代码。 当我在弹出窗口中绘制箱线图时,它工作正常。当我尝试在 pyQt 中的画布上绘制一些简单的图时(如 sin,或如上例所示),它工作正常。
问题是当我尝试在 pyQt 窗口中的画布上绘制箱线图时,只显示传单。
我做错了吗?还有其他方法可以在 pyQt 窗口中显示箱线图吗?
看起来像这样:
我的代码 -s 独立版本
import matplotlib.pyplot as plt
data = [{'med': 6.0, 'q1': 4.0, 'q3': 8.0, 'whislo': 3.0, 'whishi': 10.0, 'fliers': [20, 1]}]
fig, axes = plt.subplots()
axes.bxp(data)
plt.show()
从stack answer 重写的绘图方法:
data = [{'med': 6.0, 'q1': 4.0, 'q3': 8.0, 'whislo': 3.0, 'whishi': 10.0, 'fliers': [20, 1]}]
ax = self.figure.add_subplot(111)
ax.hold(False)
ax.bxp(data)
self.canvas.draw()
【问题讨论】:
-
执行您的第一个示例时出现错误(TypeError: 'AxesSubplot' object is not iterable)。你用的是哪个 Python/pyqt/matplotlib 版本。
-
对不起,错字。
fig, axes = plt.subplot()应该是fig, axes = plt.subplots()。我在问题中修复了它。 myplotlib 1.4.2,python 3.4.2,pyqt 4.11 -
我现在可以确认您所看到的(也在 PySide 中),但我无法帮助您。对不起。
-
我已经回答了你的问题,希望我提供给你的解决方案也对你有用。
标签: python matplotlib pyqt boxplot