我想选择一个图形的宽度,同时仍然让matplotlib选择它认为合适的纵横比。我知道的更改图形大小的每种方法都需要一个(宽度,高度)元组,该元组强制具有一定的宽高比。有什么方法可以仅指定宽度(或仅高度)并允许matplotlib选择合适的宽高比?
据我了解,matplotlib本身并未“选择”合适的宽高比。相反,轴会自动填充到图形的大小。因此,通过使用(宽度,高度)元组设置图形尺寸,您还可以设置图形的纵横比(还要考虑图形中子图轴的数量)。也许axes方法set_aspect会为您提供帮助?它允许您显式设置图形中轴对象的纵横比。
例如,以下代码将产生4“ x2”图形,但其中的轴将具有1:1的纵横比:
fig, ax = plt.subplots(figsize=(4,2))
ax.set_aspect('equal')
Run Code Online (Sandbox Code Playgroud)
该方法set_aspect也可以采用height:width数字。无论选择哪种图形尺寸,都可以使用它来强制轴保持特定的宽高比。
编辑:这篇文章可能也有帮助。
我了解到 matplotlib 实际上只是对所有图形使用恒定的默认图形大小。该值存储在 中rcParams,可以使用
plt.rcParams["figure.figsize"]
Run Code Online (Sandbox Code Playgroud)
这[6.0, 4.0]对我来说是回报。
如果您想保持相同的宽高比(即“纵横比”),您可以使用以下命令将其加倍:
plt.rcParams["figure.figsize"] = [2 * i for i in plt.rcParams["figure.figsize"]]
Run Code Online (Sandbox Code Playgroud)