在matplotlib中设置绘图的纵横比

时间:2015-10-15 17:26:31

标签: python matplotlib

使用Matplotlib,我想并排绘制六个图。但是,我希望每个绘图的宽高比为1.

如果我运行以下内容:

import matplotlib.pyplot as plt
fig = plt.figure()

for n in range(1, 6):
    fig.add_subplot(1, 6, n)
    plt.axis([0, 4, 0, 4])

plt.show()

然后它显示了沿x轴“压扁”的六个图。即使我将x轴和y轴设置为相同的长度,也会发生这种情况。

如何使所有图的宽高比均为1?

1 个答案:

答案 0 :(得分:4)

并排5个图,您必须设置图形大小以允许绘图的足够空间,并在图之间添加一些填充,以便一个子图的轴的文本标签不与下一个图重叠。

import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10,2))

for n in range(1, 6):
    ax = fig.add_subplot(1, 5, n)
    ax.set_aspect(1)
    plt.axis([0, 4, 0, 4])

plt.tight_layout(pad=1)

plt.show()

enter image description here