2 Matplotlib图中相同大小的轴

时间:2017-11-03 08:45:25

标签: python matplotlib

当我尝试用Gridspec将两个相等高度的轴放在彼此相邻的位置时,它们最终位于图的顶部,而不是占据所有垂直空间:

enter image description here

如何将两个方形轴相邻(其中一个具有相同的纵横比,使圆圈为圆形),使它们填充图形?

我的代码:

import numpy as np
import matplotlib.pyplot as plt

dpi = 72
fig, (ax1, ax2) = plt.subplots(1, 2, gridspec_kw={'height_ratios': [1,1]},
                               figsize=(600/dpi, 300/dpi), dpi=dpi)

x1 = np.linspace(-0.5, 0.5, 500)
ax1.plot(x1, np.sqrt(0.25-x1**2), c='b', lw=2, alpha=0.7)
ax1.plot(x1, -np.sqrt(0.25-x1**2), c='b', lw=2, alpha=0.7)
ax1.set_xlim(-0.5, 0.5)
ax1.set_ylim(-0.5, 0.5)
ax1.axis('equal')

x2 = np.arange(2,26,2)
ax2.scatter(x2, np.random.random(x2.shape[0]))
ymin, ymax = ax2.get_ylim()
ax2.set_xlabel('x')
ax2.set_ylabel('y')

fig.tight_layout()
plt.savefig('sofig.png', dpi=dpi, facecolor=fig.get_facecolor())
plt.show()

1 个答案:

答案 0 :(得分:2)

如果你想要平方轴你可能想要给出足够的figsize而不是使用gridspecs:

'device_id'

请注意,figsize中的x dim应为y * 2.

这将填满整个无花果空间并保持轴的平方比例。

enter image description here