self.figure = Figure() self.canvas = FigureCanvas(self.figure)怎么保存matplotlib绘制的画布
时间: 2024-02-28 11:56:19 浏览: 51
同样可以使用 `savefig()` 函数来保存 matplotlib 绘制的画布。不过需要在 `Figure` 对象上调用 `savefig()` 函数,而不是在 `Canvas` 对象上调用。以下是一个例子:
```python
import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建画布和绘图区域
self.figure = Figure()
self.canvas = FigureCanvas(self.figure)
# 设置绘图区域的内容
ax = self.figure.add_subplot(111)
ax.plot([1, 2, 3], [4, 5, 6])
ax.set_title("My Plot")
ax.set_xlabel("X-axis")
ax.set_ylabel("Y-axis")
# 将画布添加到主窗口
layout = QVBoxLayout()
layout.addWidget(self.canvas)
widget = QWidget()
widget.setLayout(layout)
self.setCentralWidget(widget)
def save_plot(self, file_name):
"""
保存绘图结果到文件
"""
self.figure.savefig(file_name)
# 创建应用程序和主窗口
app = QApplication(sys.argv)
window = MyWindow()
window.show()
# 保存绘图结果到文件
window.save_plot("my_plot.png")
# 进入事件循环
sys.exit(app.exec_())
```
这样会将绘制的画布保存为 `my_plot.png` 文件。你可以将文件名和格式按照需要进行修改。在上面的代码中,我在 `MyWindow` 类中添加了一个 `save_plot()` 方法,用于保存绘图结果到文件。
阅读全文