我在 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()
这意味着我不会在每次更改图形时销毁并重新创建图形,而是重复使用现有图形。但是是否可以选择在其生命周期内使用 matplotlib.pyplot.style 之类的东西来更改图形的完整样式?或者,当我想更改样式时,我是否需要始终创建一个新图形(和新小部件)?
最佳答案
更改样式就像更改rcParams
,它不会更改已创建对象的属性。这与 matplotlib 的工作方式不太相符。
请注意,一些对象是在您与绘图交互时创建的,例如刻度标签。当您缩放和平移时,可能会动态创建新的刻度标签并反射(reflect)样式/rcParams
中的更改。
您可以选择重新创建对象和编写显式更改其属性的代码。
关于python - 更改现有图形的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41122970/