更改现有图形的样式
change style of an existing figure
我在 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 的工作方式。
请注意,有些对象是在您与绘图交互时创建的,例如刻度标签。当您缩放和平移时,可能会即时创建新的刻度标签并反映样式的变化 / rcParams
.
您可以选择重新创建对象和编写明确更改其属性的代码。
我在 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 的工作方式。
请注意,有些对象是在您与绘图交互时创建的,例如刻度标签。当您缩放和平移时,可能会即时创建新的刻度标签并反映样式的变化 / rcParams
.
您可以选择重新创建对象和编写明确更改其属性的代码。