首页 > 解决方案 > Matplotlib 多个子图图形间距按要求

问题描述

尽管在 plt.tight_layout 或 plt.subplots_adjust 上进行了多次迭代,但关于间隔 matplotlib 子图的一个非常简单的问题。我仍然无法在子图之间带来正确的空间

以下是示例 python 代码

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline


dict1 = {'importance': {'var1': 67.18,'var2': 50.33,'var3': 29.33,
   'var4': 27.17, 'var5': 24.880}}

dict2 = {'importance': {'var3': 50.18,'var1': 30.33,'var2': 29.33,
  'var4': 24.17, 'var5': 7.880}}


df1 = pd.DataFrame.from_dict(dict1)
df2 = pd.DataFrame.from_dict(dict2)


fig, (ax1, ax2) = plt.subplots(1,2)
fig = plt.figure(figsize=(60,60))
fig.subplots_adjust(wspace=10)
df1.plot(kind = 'barh', ax = ax1)
df2.plot(kind = 'barh', ax = ax2)

所以图是在此处输入图像描述

这当然不是我要寻找的,我正在寻找广泛传播的子图。请帮助

标签: pythonpandasmatplotlib

解决方案


您的问题是fig = plt.figure(figsize=(60,60))创建了第二个图形,因此当您调用 时fig.subplots_adjust(wspace=10),它会修改第二个图形,而不是您拥有绘图轴的图形。纠正此问题的一种方法是首先在对 subplots 的调用中包含关键字 figsize fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(60, 60),然后删除对below 的调用figure,最后调整wspace值。


推荐阅读