python - 如何使用 PySide2 在 matplotlib 中显示图形?

标签 python matplotlib pyside2

我正在尝试学习 matplotlib 并尝试测试以下代码。

import matplotlib
from matplotlib.figure import Figure  
import matplotlib
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as     FigureCanvas
import sys
from PySide2 import QtGui   

if __name__ == "__main__":

    app = QtGui.QApplication(sys.argv)
    wid = QtGui.QWidget()
    wid.resize(250, 150)
    grid = QtGui.QGridLayout()
    wid.setLayout(grid)
    fig = Figure(figsize=(7,5), dpi=65, facecolor=(1,1,1), edgecolor=(0,0,0))
    canvas = FigureCanvas(fig)
    grid.addWidget(canvas)
    wid.show()

不过好像不认识Figure的签名。

TypeError: 'PySide2.QtGui.QGridLayout.addWidget' called with wrong argument types:
PySide2.QtGui.QGridLayout.addWidget(FigureCanvasQTAgg) Supported signatures:
PySide2.QtGui.QGridLayout.addWidget(PySide2.QtGui.QWidget, int, int, PySide2.QtCore.Qt.Alignment = 0)
PySide2.QtGui.QGridLayout.addWidget(PySide2.QtGui.QWidget, int, int, int, int, PySide2.QtCore.Qt.Alignment = 0)

最佳答案

PySide2 是 Qt5 的绑定(bind),因此您必须使用 backend_qt5agg 而不是 backend_qt4agg,另一方面,建议在导入后端(本例中为 PySide2)之前matplotlib 以便 matplotlib 在内部对其进行配置,除了 QApplication 之外,QWidget 和 QGridLayout 属于 QtWidgets,因为 Qt5 将它们与 QtGui 分开,最后当您将一个小部件添加到 QGridLayout 时,您必须在以下参数中指明其位置。

考虑到上面的解决方案是

import sys

from PySide2 import QtWidgets
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure


if __name__ == "__main__":

    app = QtWidgets.QApplication(sys.argv)
    wid = QtWidgets.QWidget()
    wid.resize(250, 150)
    grid = QtWidgets.QGridLayout(wid)
    fig = Figure(figsize=(7, 5), dpi=65, facecolor=(1, 1, 1), edgecolor=(0, 0, 0))
    canvas = FigureCanvas(fig)
    grid.addWidget(canvas, 0, 0)
    wid.show()
    sys.exit(app.exec_())

关于python - 如何使用 PySide2 在 matplotlib 中显示图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57238618/

相关文章:

python - 由于缺少 CSRF,表单验证失败

python - 如何离线将 python 模块导入 Pycharm

python - 如何在odoo 8中获取pdf数据或内容

python - 如何在 PyGame 中集成折线图查看器?

python - 如何将 QTableWidget 中的数据绘制到 QChart 中

python - 迭代数据并将其输入到 pandas 数据框中的列中

python - Python 中的分组 X 轴变异图

python - Python 中带有渐变背景的点图?

python - 如何在 PyQt 中绘制自定义椭圆形?