Python TypeError:QPixmap():参数1具有意外类型';图';

Python TypeError:QPixmap():参数1具有意外类型';图';,python,python-3.x,matplotlib,pyqt,pyqt5,Python,Python 3.x,Matplotlib,Pyqt,Pyqt5,我正在尝试使用matplotlib制作一个图形,并使用Qpixmap直接在Qlabel中绘制它。但是,发生了错误QPixmap():参数1具有意外的类型“Figure”。如何在不保存之前显示图形 import matplotlib.pyplot as plt import numpy as np labels = ['Word', 'Excel', 'Chrome','Visual Studio Code'] title = [20,32,22,25] cores = ['lightblu

我正在尝试使用matplotlib制作一个图形,并使用Qpixmap直接在Qlabel中绘制它。但是,发生了错误QPixmap():参数1具有意外的类型“Figure”。如何在不保存之前显示图形

import matplotlib.pyplot as plt
import numpy as np

labels = ['Word', 'Excel', 'Chrome','Visual Studio Code'] 
title = [20,32,22,25] 
cores = ['lightblue','green','blue','red']
explode = (0,0.1,0,0)
plt.rcParams['font.size'] = '16'
total=sum(title)
plt.pie(title,explode=explode,labels=labels,colors=cores,autopct=lambda p: '{:.0f}'.format(p*total/100), shadow=True, startangle=90)
plt.axis('equal')
grafic = plt.gcf()
self.ui.grafig_1.setPixmap(QPixmap(grafic))
不能直接将转换为,因此会出现该异常。相反,您必须获取由方法生成的图像的字节,并使用它创建一个:

导入io
导入系统
将matplotlib.pyplot作为plt导入
将numpy作为np导入
从PyQt5导入QtGui、QtWidgets
标签=[“Word”、“Excel”、“Chrome”、“Visual Studio代码”]
标题=[20,32,22,25]
核心=[“浅蓝色”、“绿色”、“蓝色”、“红色”]
分解=(0,0.1,0,0)
plt.rcParams[“font.size”]=“16”
总计=总计(标题)
馅饼(
标题
爆炸,
标签=标签,
颜色=核心,
autopct=lambda p:“{.0f}”。格式(p*total/100),
阴影=真,
startangle=90,
)
plt.轴(“相等”)
grafic=plt.gcf()
f=io.BytesIO()
grafic.savefig(f)
app=qtwidts.QApplication(sys.argv)
label=qtwidts.QLabel()
pixmap=QtGui.QPixmap()
pixmap.loadFromData(f.getvalue())
label.setPixmap(pixmap)
label.show()
sys.exit(app.exec_())
注意:无需转换为QPixmap来显示matplotlib绘图,因为matplotlib允许使用Qt作为后端,我建议查看以下帖子: