Python Matplotlib无法绘制所有子绘图

Python Matplotlib无法绘制所有子绘图,python,matplotlib,Python,Matplotlib,我想使用Python在一个图形中动态绘制7或8个直方图(共享x轴)。但图中只显示了其中的一部分。 虽然它有7个子地块: 这是我的密码: import matplotlib import matplotlib.pyplot as plt matplotlib.use('Agg') import pickle distribution = pickle.load(open("data.txt", "r")) fig,axes = plt.subplots(nrows = len(distributi

我想使用Python在一个图形中动态绘制7或8个直方图(共享x轴)。但图中只显示了其中的一部分。 虽然它有7个子地块: 这是我的密码:

import matplotlib
import matplotlib.pyplot as plt
matplotlib.use('Agg')
import pickle
distribution = pickle.load(open("data.txt", "r"))
fig,axes = plt.subplots(nrows = len(distribution), sharex = True)
index=0
for tag in distribution_progress:
    axes[index].hist(distribution_[tag],bins=50, normed=1, facecolor='yellowgreen', alpha=0.75)
    axes[index].set_title(tag)
    index += 1
plt. subplots_adjust( top = 3, hspace = 0.4)
plt.show()

指定具有较大高宽比的地物尺寸:

width, height = 6, 8
fig,axes = plt.subplots(nrows=N, sharex=True, figsize=(width, height))
增加,为子地块标题提供足够的空间:

plt. subplots_adjust(hspace = 1.0)
同样,不要使用
top=3
,因为这样会将子地块的顶部放置在中的y=3,而可见地物的顶部始终位于y=1(在地物坐标系中)



我很困惑。有什么问题?生成了哪个图形?
top=3
表示图形内容比图形本身大300%。因此,仅显示其底部。第二张图片似乎是期望的结果,因此不清楚问题到底是什么。谢谢你的回答!如果我理解正确,子图共享图形,并且图形的最大大小是有限的。所以我不能把这7张图的高度都放大,否则就超出了图形的边界?@平江里:是的,基本上是这样。更改间距参数。它不会放大轴。它只会更改它们在图形中的位置。有关matplotlib对象层次结构的详细信息,请参阅。
import numpy as np
import matplotlib.pyplot as plt
N = 8
width, height = 6, 8
fig, axes = plt.subplots(nrows=N, sharex=True, figsize=(width, height))
index = 0
for tag in range(N):
    axes[index].hist(np.random.random(100), bins=50, normed=1,
                     facecolor='yellowgreen', alpha=0.75)
    axes[index].set_title(tag)
    index += 1
plt. subplots_adjust(hspace=1.0)
plt.show()