import matplotlib.pylab as plt,最后怎么将plt绘制的图片加载到自己创建的画布canvas中去
时间: 2024-02-25 11:53:58 浏览: 77
可以使用`FigureCanvas`和`Figure`对象将`plt`绘制的图片加载到自己创建的画布`canvas`中。
以下是一个示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from PyQt5.QtGui import QPixmap
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
import matplotlib.pylab as plt
import numpy as np
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个matplotlib的Figure对象
self.figure = Figure()
# 在Figure上添加一个子图
self.ax = self.figure.add_subplot(111)
# 使用matplotlib绘制一张图片
x = np.linspace(-np.pi, np.pi, 300)
y = np.sin(x)
self.ax.plot(x, y)
# 将Figure对象传递给FigureCanvas对象
self.canvas = FigureCanvas(self.figure)
# 将FigureCanvas对象添加到PyQt的GUI界面中
layout = QVBoxLayout()
layout.addWidget(self.canvas)
widget = QWidget()
widget.setLayout(layout)
self.setCentralWidget(widget)
# 将plt绘制的图片加载到FigureCanvas中
plt.savefig("temp.png")
self.pixmap = QPixmap("temp.png")
self.canvas.draw()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在该示例中,我们创建了一个MainWindow类,并在其中创建了一个matplotlib的Figure对象和一个FigureCanvas对象。然后,我们使用matplotlib绘制了一张图片,并将其保存到本地文件`temp.png`中。接着,我们使用PyQt的QPixmap将该图片加载到GUI界面中的FigureCanvas对象中。最后,我们启动了PyQt的事件循环,以便在GUI界面中显示绘制的图形。
阅读全文