将网格线和 y=x 线添加到seaborn lmplot

问题描述 投票:0回答:1

我有以下代码来绘制关于分类变量的回归图。这个问题感兴趣的变量是“

Site
”。

children_with_PNC_plot_site = sns.lmplot(x="Z Score, Post Central WM Right for All Patients vs. All Controls, Ages 6-18", 
                                         y="Z Score, Post Central WM Right for Children Patients vs. All Controls", 
                                         hue = "Site", palette = "hsv", data=df, fit_reg=False) 

有没有办法将水平和垂直网格线以及线

y=x
一起添加到下面的图中?

当我尝试执行上述任何操作时,我总是会得到一个仅包含网格线或

y=x
线的新图。

谢谢!

python matplotlib seaborn regression lmplot
1个回答
0
投票

sns.lmplot(...)
是一个“图形级别”函数,它创建自己的图形,可能有许多子图。当只有一个子图时,您可以使用返回的
“FacetGrid”
ax 在其上进行绘图。

这是一个例子:

import seaborn as sns

iris = sns.load_dataset('iris')
g = sns.lmplot(data=iris, x='sepal_length', y='petal_length', hue='species', fit_reg=False)
g.ax.axline((0, 0), slope=1, color='k', ls='--')
g.ax.grid(True, axis='both', ls=':')

如果您创建多个子图(例如通过

col=
参数),您可以循环遍历所有子图:

import seaborn as sns

iris = sns.load_dataset('iris')
g = sns.lmplot(data=iris, x='sepal_length', y='petal_length', col='species', fit_reg=False)
for ax in g.axes.flat:
    ax.axline((0, 0), slope=1, color='k', ls='--')
    ax.grid(True, axis='both', ls=':')

© www.soinside.com 2019 - 2024. All rights reserved.