为什么plt.figure(figsize =(w,h))对df.barh()不起作用,而plt.rcParams ['figure.figsize'] = [w,h]起作用吗?

时间:2019-03-08 11:49:03

标签: python matplotlib plot jupyter-notebook

我似乎无法在Matplotlib或在线的任何地方找到答案

plt.figure(figsize=(15,20))
df.plot.barh()

不会更改绘图大小。我必须改用

plt.rcParams['figure.figsize'] = [15, 20]
df.plot.barh()

有人可以解释plt.figureplt.rcParams有什么区别吗?

使用后如何将plt.rcParams['figure.figsize'] = [w,h]的效果重置为jupyter笔记本中的原始大小?我尝试过plt.rcdefaults(),但默认图形尺寸仍然更大吗?

谢谢

1 个答案:

答案 0 :(得分:-1)

如果barh未被显式传递,似乎会创建一个新的图形和轴。因此,当您执行plt.figure(figsize=(15,20))时,您是在创建图形,但从未使用过它。

plt.rcParams['figure.figsize'] = [15, 20]影响所有数字。

一种解决方案是创建图形和轴并将其作为参数传递

fig, ax = plt.subplots(figsize=(15,20))
df.plot.barh(ax=ax)

或者,barh有一个figsize参数可以使用。因此,不要预先创建图形,只需执行

df.plot.barh(figsize=(15,20))