我在一个图形中有 2x2 个轴网格,我想将其与理想矩形对齐,偏移量为零。不幸的是,我还需要使用ax.set_aspect("equal")
它,这似乎会导致很多问题。
最小代码如下所示:
import matplotlib.pyplot as plt
fig, axes = plt.subplots(2,2,
figsize = (15,6.04),
gridspec_kw = dict(
wspace = 0,
hspace = 0
),
)
for ax in axes[:,1]:
ax.yaxis.tick_right()
ax.yaxis.set_label_position("right")
for ax in axes.flatten():
ax.set_xlim(0,15)
ax.set_ylim(-4, 2)
ax.set_aspect("equal")
设置 figsize 可以解决问题,但仅适用于一组 lim。我希望它能够针对任何 xlim/ylim 比率自动重新计算。有没有简单的方法可以做到这一点(例如通过推断 figsize y 中的 0.04 偏移)?
较新的版本
layout='compressed'
可以做到这一点(https://matplotlib.org/stable/users/explain/axes/constrainedlayout_guide.html#grids-of-fixed-aspect-ratio-axes-compressed-layout)。但请注意,如果您的刻度标签超出了子图的边缘,则“压缩”会在子图之间产生间隙。