我想选择数字的宽度,同时仍然让matplotlib选择它认为合适的宽高比。我知道改变图形大小的每个方法都需要一个(宽度,高度)元组,这会强制一定的宽高比。有没有办法只指定宽度(或只是高度)并允许matplotlib选择合适的宽高比?
答案 0 :(得分:3)
根据我的理解,matplotlib不会选择"合适的纵横比本身。相反,轴会自动填充到图形的大小。因此,通过使用(宽度,高度)元组设置图形大小,您还可以设置它的纵横比(同时考虑图中的子图轴数)。也许轴方法set_aspect
会对你有帮助吗?它允许您在图中明确设置轴对象的纵横比。
例如,以下将生成4" x2"但是,其中的轴将具有1:1的宽高比:
fig, ax = plt.subplots(figsize=(4,2))
ax.set_aspect('equal')
方法set_aspect
也可以采用高度:宽度数。无论您选择的图形尺寸如何,都可以使用它来强制轴内的轴保持特定的纵横比。
编辑:This post也可能有所帮助。
答案 1 :(得分:0)
我了解到,matplotlib实际上仅对所有图形使用恒定的默认图形大小。此值存储在rcParams
中,可以用
plt.rcParams["figure.figsize"]
这会为我返回[6.0, 4.0]
。
如果要保持相同的宽高比(即“长宽比”),则可以使用以下方法将其加倍:
plt.rcParams["figure.figsize"] = [2 * i for i in plt.rcParams["figure.figsize"]]