我正在使用一个来自mne库(https://martinos.org/mne/stable/generated/mne.viz.plot_topomap.html#mne.viz.plot_topomap)的函数,它自动绘制我需要嵌入到PyQt5中的图形。你知道吗
我现在要做的是将.png中的图形保存到我的目录中,它就可以工作了。但我要做的是在画布上绘制它而不保存它。你知道吗
import matplotlib
matplotlib.use('QT5Agg')
from PyQt5 import QtCore, QtGui, QtWidgets
from matplotlib.pyplot import Figure
import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as Canvas
class MplCanvas(Canvas):
def __init__(self):
self.fig = Figure()
self.ax = self.fig.add_subplot(111)
Canvas.__init__(self, self.fig)
Canvas.setSizePolicy(self, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
Canvas.updateGeometry(self)
class MplWidget(QtWidgets.QWidget):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent) # Inherit from QWidget
self.canvas = MplCanvas() # Create canvas object
self.qeeg1 = QtWidgets.QVBoxLayout() # Set box for plotting
self.qeeg1.addWidget(self.canvas)
self.setLayout(self.qeeg1)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.qeeg = MplWidget(self.widget)
self.qeeg.setEnabled(True)
class ExampleApp(QtGui.QMainWindow, mneTrial_ui.Ui_MainWindow):
def __init__(self, parent=None):
super(ExampleApp, self).__init__(parent)
self.setupUi(self)
def QEEG_plotting(parameters)
fig = plt.figure(figsize=(size,size))
mne.viz.plot_topomap(parameters)
return fig
def refresh(self):
figure = self.QEEG_plotting(parameters)
self.qeeg.canvas.ax.imshow(figure)
self.qeeg1.canvas.draw()
if __name__=="__main__":
app = QtWidgets.QApplication(sys.argv)
form = ExampleApp()
form.show()
# form.update() #start with something
app.exec_()
我得到的错误是“图像数据不能转换成浮点”,但我还没有从画布上找到一个函数来绘制图像。你知道吗
“图形”的类型是matplotlib.figure.figure图你知道吗
附言:我有一个刷新绘图的按钮
目前没有回答
相关问题 更多 >
编程相关推荐