web-dev-qa-db-ja.com

海生線形回帰ジョイントプロットで線の色を変更する方法

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コマンドが見つかりませんでした。

線が背景(ドットの後ろ)にある場合は、線を前に出す方法もお聞きしたいと思います。

12
n1000

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のディクト:

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

または、プロット後に線にアクセスして直接変更することもできます。これは、プロットされた最初の線である回帰直線に依存するため、海の更新で壊れることがあります。また、不確実性の広がりを再着色しないため、美的/教育的にも異なります。これは、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

24
cphlewis