matplotlib 增加FacetGrid图中行之间的间距

xxe27gdn  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(120)

我有下面的代码,它创建了你可以在图片中看到的情节:

g = sns.FacetGrid(data, col="Provincia",col_wrap=6,size=2.5)
g.map(sns.barplot, "Anio", "Diff");
g.set_axis_labels("Año", "Porcentaje de aumento");

for ax in g.axes.flat:
    _ = plt.setp(ax.get_yticklabels(), visible=True)
    _ = plt.setp(ax.get_xticklabels(), visible=False)
    _ = plt.setp(ax.get_xticklabels()[0], visible=True)    
    _ = plt.setp(ax.get_xticklabels()[-1], visible=True)

正如您在图中所看到的,问题在于x标记会随着下面的col名称而折叠。为了解决这个问题,增加这个空间的正确方法是什么?

oxalkeyp

oxalkeyp1#

紧凑布局

您可以使用tight_layout自动调整间距

g.fig.tight_layout()

或者,如果将matplotlib.pyplot导入为plt

plt.tight_layout()

子图调整

您可以使用plt.subplots_adjust手动设置子图之间的间距。

plt.subplots_adjust(hspace=0.4, wspace=0.4)

其中hspace是高度上的空间,并且wspace是空间宽度方向。

gridspec关键字参数

您还可以在FacetGrid初始化中使用gridspec_kws

g = sns.FacetGrid(data, ... , gridspec_kws={"wspace":0.4})

但是,只有在未设置col_wrap的情况下才能使用此选项。(因此,在问题的特定情况下,这可能不是一个选项)。

相关问题