首页 > 解决方案 > Jupyter:如何绘制多个具有固定高度的直方图?

问题描述

我有一个包含多列的数据框,我想一次绘制它们的直方图。DataFrame 对象有一个非常好的subplots参数,可以在自己的轴上绘制每个变量:

%matplotlib inline # same problem with %matplotlib notebook
df.iloc[:,-3:].plot.hist(subplots=True);

给我:

3 个直方图

问题是当我尝试绘制更多列时:

%matplotlib inline
# 15 variables
df.iloc[:,-15:].plot.hist(subplots=True);

丑陋的多列

我希望能够设置每个轴的固定高度,并拥有一个非常大的图像,或者能够滚动查看它们。

怎么做?

标签: pythonpandasmatplotlibjupyter

解决方案


一种方法是在绘图之前调用 to 来扩展图形的垂直尺寸plt.subplots(),如下所示:

nvars = 12  # Example number of variables

# subplots(number of vertically stacked axis positions,
#          number of horizontally stacked axis positions,
#          figsize=(width, height))
fig, ax = plt.subplots(nvars, 1, figsize=(6, 4*nvars))

# Need to pass axis handle to df.plot()
df.iloc[:,-nvars:].plot.hist(subplots=True, ax=ax);

推荐阅读