如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命令。
如果线在背景中(即在点后面),我还想问一下如何将它带到前面。
答案 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
或者通过散点图关键字字典传递线绘图关键字的字典。我读了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
或者您可以在绘制后访问该行并直接更改它。这取决于回归线是第一条线,因此可能会破坏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')