如何改变seaborn线性回归关节图中的线条颜色

时间:2015-07-22 16:28:46

标签: matplotlib seaborn

seaborn API中所述,以下代码将生成线性回归图。

import numpy as np, pandas as pd; np.random.seed(0)
import seaborn as sns; sns.set(style="white", color_codes=True)
tips = sns.load_dataset("tips")
g = sns.jointplot(x="total_bill", y="tip", data=tips, kind='reg')
sns.plt.show()

然而,由于有大量数据点,回归线不再可见。我怎样才能改变它的颜色?我找不到内置的seaborn命令。

如果线在背景中(即在点后面),我还想问一下如何将它带到前面。

1 个答案:

答案 0 :(得分:22)

有几种方法,正如mwaskom巧妙地指出的那样。您可以将参数传递给关节图,但设置color会影响整个散点图:

import numpy as np, pandas as pd; np.random.seed(0)
import seaborn as sns#; sns.set(style="white", color_codes=True)
tips = sns.load_dataset("tips")
g = sns.jointplot(x="total_bill", y="tip", data=tips, kind='reg',
                  joint_kws={'color':'green'}) # Scatter and regression all green

enter image description here

或者通过散点图关键字字典传递线绘图关键字的字典。我读了seaborn/linearmodels.py来弄清楚这是做什么的,这本身就很有趣和信息。 dict dict:

g = sns.jointplot(x="total_bill", y="tip", data=tips, kind='reg',
                  joint_kws={'line_kws':{'color':'cyan'}}) # Only regression cyan

enter image description here

或者您可以在绘制后访问该行并直接更改它。这取决于回归线是第一条线,因此可能会破坏seaborn更新。它在美学上/教学上也是不同的,因为你不会重新着色不确定性的传播。这是熟悉JointGrid对象是什么以及如何与其进行交互的好方法。 (也许有些属性你不能用函数调用参数设置,虽然我想不出任何。)

g = sns.jointplot(x="total_bill", y="tip", data=tips, kind='reg')
regline = g.ax_joint.get_lines()[0]
regline.set_color('red')
regline.set_zorder('5')

enter image description here