matplotlib中的figsize不会更改图形大小吗?[重复]
问题内容:
这个问题已经在这里有了答案 :
您如何更改用matplotlib绘制的图形的大小? (19个回答)
2年前关闭。
如您所见,代码生成的条形图不太清楚,我想将数字放大,以便可以更好地看到值。这没有做。正确的方法是什么?x是一个数据框,x['user']
是图中的x轴,x['number']
是y。
import matplotlib.pyplot as plt
%matplotlib inline
plt.bar(x['user'], x['number'], color="blue")
plt.figure(figsize=(20,10))
带plt.figure的行不会更改初始尺寸。
问题答案:
(由@tda提到的),也可能是最好的/最标准的方式一种选择,就是把plt.figure
前plt.bar
:
import matplotlib.pyplot as plt
plt.figure(figsize=(20,10))
plt.bar(x['user'], x['number'], color="blue")
如果要在创建图形后设置图形大小,另一种选择是使用fig.set_size_inches
(请注意,我plt.gcf
在这里用来获取当前图形):
import matplotlib.pyplot as plt
plt.bar(x['user'], x['number'], color="blue")
plt.gcf().set_size_inches(20, 10)
尽管这不是最干净的代码,但可以一行完成所有操作。首先,您需要创建图形,然后获取当前轴(fig.gca
),并在其上绘制条形图:
import matplotlib.pyplot as plt
plt.figure(figsize=(20, 10)).gca().bar(x['user'], x['number'], color="blue")
最后,我将指出,通常最好使用matplotlib面向对象的方法,在该方法中,您可以保存对当前图形和轴的引用,并直接在其上调用所有绘图函数。它可能会添加更多行代码,但通常是更清晰的代码(并且您可以避免使用诸如gcf()
和gca()
)。例如:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(20, 10))
ax = fig.add_subplot(111)
ax.bar(x['user'], x['number'], color="blue")