python - 更改现有图形的样式

标签 python matplotlib pyqt pyside

我在 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/

相关文章:

python - 使用 randint 意外执行更新字典

python - 尝试使用 openpyxl 解冻 Pane 会导致损坏

python - 使用 greengrass 在本地设备上执行 lambda 函数

Python ipywidgets : create a savefig button

python - 使用日期值设置 xticks 间隔

python - PyCharm无法显示动画

python - 如何在 PyQt 中设置 QHeaderView 的标签?

python - 如何在 Python 中使用 XSLT 2.0 拆分 XML 文件

python - 在运行 scrapy 之前插入多个输入字段

qt - 使用PyQt4 QNetworkAccessManager.post()方法时如何防止表单数据中的 '+'被空格替换