设置seaborn lmplot列的个体ylim

时间:2018-02-28 17:47:51

标签: python pandas matplotlib seaborn

我使用以下命令制作了一个lmplot列图(subplot):

g = sns.lmplot(x=COX, y='dX', data=tidy_data, hue='hue', col='comp', 
col_wrap=8, fit_reg=True, scatter=True, aspect=1.5,
            legend_out=True, truncate=True, scatter_kws={"s": 200})

figure of the plotted lmplot FacetGrid

FacetGrid似乎将所有子图的ylim设置为所有数据中的最大值。我想为每个子图单独设置ylim。我首先看了这个问题的答案:

How to set some xlim and ylim in Seaborn lmplot facetgrid

我测试过:

g.axes.shape
>>> (23, )

g.axes[0]
>>> AxesSubplot(0.0189366,0.704381;0.116079x0.258196)

g.axes[0].set_ylim(0, 1)
>>> 

然而,这种方法似乎也为所有子图提供了相同的ylim。也许我没有访问正确的轴?我真的很感激一些帮助。

1 个答案:

答案 0 :(得分:1)

如果您希望能够改变FacetGrid中某个特定情节的ylim,则必须使用g = sns.lmplot(..., sharey=False)

明确创建它

示例:

tips = sns.load_dataset("tips")
g = sns.lmplot(x="total_bill", y="tip", col="day", hue="day", data=tips, col_wrap=2, size=3, 
               sharey=False)
g.axes[0].set_ylim((0,100))

enter image description here