我正在与here所示的FacetGrid
示例一起工作,其中FacetGrid
对象是使用下面的代码片段初始化的,导致出现下面的图。
# Initialize the FacetGrid object
g = sns.FacetGrid(df, row="g", hue="g", height=2, aspect=10, palette=sns.color_palette("Blues", 1))
# Draw the densities in a few steps
g.map(sns.kdeplot, "x", clip_on=False, shade=True, alpha=1, lw=1.5, bw=.2)
g.map(sns.kdeplot, "x", clip_on=False, color="w", lw=2, bw=.2)
g.map(plt.axhline, y=0, lw=2, clip_on=False)
我已在所有构面中添加了值标签,并且我想对其进行进一步修改以缩放每个构面,因为在很多情况下,值超出构面的最大空间,在某些情况下由于值不够密集,因此无法看到数据。第一组案例如下所示,您可以看到标签如何延伸到下一个方面,从而降低了图的清晰度。
我想要实现的是对每个构面进行单独缩放,并标记值,并将最大值放置在可用构面空间的顶部。
答案 0 :(得分:0)
我解决了它,注释掉下面的行后,构面不再重叠:
# Set the subplots to overlap
g.fig.subplots_adjust(hspace=-.25)
此外,按照注释中的建议,我将值设置为正数以使构面彼此靠近,但不引入相邻构面的标签之间的重叠。我发现0.2
的值很好地满足了需求:
g.fig.subplots_adjust(hspace=.2)
然后sharey=False
构造函数中的FacetGrid
自变量起作用。看起来更干净,但是这些值并不能完全填满整个可用空间,但这也许是有意的。
g = sns.FacetGrid(df, row="g", hue="g", height=2, aspect=10, sharey=False, palette=sns.color_palette("Blues", 1))