python - matplotlib,如何使用滚动条保存子图
问题描述
嗨,我搜索了不错的模块来保存带有滚动条的子图。但是这个模块只能显示绘图而不是保存文件,显示“分段错误(核心转储)”消息......
我不知道为什么..你能帮帮我吗..?实际上,当我只保存一个情节时,它运行良好。但是当我使用 for 循环函数保存多个绘图时,该消息显示并阻止脚本运行..
```蟒蛇```
import matplotlib.pyplot as plt
from PyQt4 import QtGui
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar
class ScrollableWindow(QtGui.QMainWindow):
def __init__(self, fig, savefile):
self.qapp = QtGui.QApplication([])
QtGui.QMainWindow.__init__(self)
self.widget = QtGui.QWidget()
self.setCentralWidget(self.widget)
self.widget.setLayout(QtGui.QVBoxLayout())
self.widget.layout().setContentsMargins(0,0,0,0)
self.widget.layout().setSpacing(0)
self.fig = fig
self.canvas = FigureCanvas(self.fig)
self.canvas.draw()
self.scroll = QtGui.QScrollArea(self.widget)
self.scroll.setWidget(self.canvas)
self.nav = NavigationToolbar(self.canvas, self.widget)
self.widget.layout().addWidget(self.nav)
self.widget.layout().addWidget(self.scroll)
#self.show()
plt.savefig(savefile)
#exit()
#exit(self.qapp.exec_())
# create a figure and some subplots
fig, axes = plt.subplots(ncols=4, nrows=5, figsize=(16,16))
for ax in axes.flatten():
ax.plot([2,3,5,1])
# pass the figure to the custom window
a = ScrollableWindow(fig,'test.png')
解决方案
推荐阅读
- firebase - 在离子中如何读取和显示来自firestore的信息
- google-apps-script - 使用 Google Apps 脚本登录 Twitter
- javascript - 对列表中的每个对象进行 api 调用
- angular - 如何关闭 mouseover 和 mouseout 事件中的错误
- language-agnostic - 将游戏逻辑与渲染线程分离
- javascript - 你好。我想降低 java 脚本中按钮到顶部的滚动速度。任何人都可以帮助我吗?
- datetime - Hive 中的高效日期案例逻辑
- python - 使用 cuda 在 pytorch 1.0 上训练 frcnn:分段错误(核心转储)
- vba - 总连续天数。我怎么知道 Date+1 是否存在?
- python - 为什么范围不返回一个数组,但是当我将它添加到列表时呢?