Python 使matplotlib图形识别对rc参数的更改

Python 使matplotlib图形识别对rc参数的更改,python,matplotlib,ipython,Python,Matplotlib,Ipython,使用plt.rc(…)更改matplotlib的选项后,我无法“更新”图形 (我正在与IPython交互模式下使用Python 3.6.8。) 下面是我尝试做的(一个最小的例子): In [1]: %matplotlib tk In [2]: import matplotlib.pyplot as plt

使用
plt.rc(…)
更改matplotlib的选项后,我无法“更新”图形

(我正在与IPython交互模式下使用Python 3.6.8。)

下面是我尝试做的(一个最小的例子):

In [1]: %matplotlib tk                                                                
In [2]: import matplotlib.pyplot as plt                                               
In [3]: plt.rc('axes', labelsize=5)                                                   
In [4]: fig = plt.figure()                                                            
In [5]: plt.plot([1,2,3], [4,5,6])                                                    
Out[5]: [<matplotlib.lines.Line2D at 0x7ffb128accc0>]
In [6]: fig.get_axes()[0].set_xlabel('This is the x label')                           
Out[6]: Text(0.5, 23.52222222222222, 'This is the x label')
In [7]: plt.rc('axes', labelsize=20)                                                  
In [8]: fig.canvas.draw()
标签大小不会更新

根据我的假设,
fig.canvas.draw()
会起作用


背景:我有两个pickle figure对象,加载后需要进行调整。

大多数参数在创建相应对象时生效。创建轴后更改轴特性无效

当然,您可以创建一个新的图形和轴。或者,您可以通过现有艺术家的API更改其属性。例如

fig.get_axes()[0].title.set_fontsize(20) 

在这种情况下。

大多数参数在创建相应对象时生效。创建轴后更改轴属性无效。@ImportanceOfBeingErnest这是不幸的。我有相当多的酸洗数字,我需要调整标签的大小。我是不是运气不好,因为我必须从头开始重新创建所有的数字?不需要从头开始重新创建它们。但是您需要通过艺术家的API更改他们的属性。例如,
fig.get_axes()[0]。title.set_fontsize(20)
在这种情况下。你可以,在
data=fig.get_axes()[0]的意义上。行[0]。get_data()
,创建一个新的图形,在其中绘制
plt.plot(*data)
。但是,只有在旧图中只有几行的情况下,这才是实际可行的。是的,这使得它相当麻烦。Plotly和mpld3都有报废程序,它们试图分析matplotlib图形,以便以不同的格式重新创建它,即使使用非常简单的东西,它们也会失败(仍然有大约100个代码行长)。谢谢,我能够通过API调整所有相关参数。不过,这需要进行大量的搜索和反复试验。我想知道,您是否知道是否有任何文档列出了并排执行相同操作的plot API和rc参数?(例如,有时关键字参数名为fontsize,但rc参数名为labelsize,非常混乱。)不,我不知道有这样的列表。
fig.get_axes()[0].title.set_fontsize(20)