我在Qt应用程序的小部件中嵌入了一个matplotlib图。
我这样创建:
from matplotlib.figure import Figure
matplotlib.use('Qt4Agg')
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
self.figure = Figure()
self.widget = FigureCanvas(self.figure)
在图表和小部件的生命周期中,我可以添加一些线条,条形图,轴等。要清除我使用的图表:
self.figure.clear()
self.figure.canvas.draw()
添加一些行:
ax = self.figure.add_subplot(111)
ax.plot(x, values, etc...)
self.figure.canvas.draw()
这意味着我不会在每次更改时销毁并重新创建图形,我正在重复使用现有图形。但有没有选择在matllotlib.pyplot.style的生命周期中改变图形的完整风格?或者,当我想要更改样式时,是否需要始终创建新图形(和新窗口小部件)?
答案 0 :(得分:2)
更改样式就像更改rcParams
一样,它不会更改已创建对象的属性。这不符合matplotlib的工作方式。
请注意,在您与绘图交互时会创建一些对象,例如刻度标签。缩放和平移时,可以动态创建新的刻度标签,并反映样式/ rcParams
的变化。
您可以选择重新创建对象并编写明确更改其属性的代码。