2016-12-13 32 views
1

我有一个matplotlib图形嵌入在Qt应用程序的一个小部件中。改变现有图形的样式

创建这样的:

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() 

这意味着我不破坏,并在每次改变时重新创建人物,我重用现有数字。但是有没有一种选择可以在matlablotlib.pyplot.style的使用过程中改变图的完整风格?或者当我想改变风格时,是否需要始终创建一个新图形(以及新窗口小部件)?

回答

1

改变样式就像改变rcParams一样,它不会改变已经创建的对象的属性。这不适合matplotlib的工作方式。

请注意,某些对象是在您与绘图交互时创建的,例如刻度标签。当您缩放和平移新的刻度标签时,可以即时创建并反映样式/ rcParams中的更改。

您可以选择重新创建对象并编写明确更改其属性的代码。