Ci sono un paio di approcci, come mwaskom ha sottolineato con tatto. È possibile passare argomenti al grafico congiunto, ma l'impostazione color
ci colpisce l'intero grafico a dispersione:
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
O passare una dizionario di parole chiave di line-tramando attraverso quel dizionario delle parole chiave a dispersione. Ho letto seaborn/linearmodels.py
per capire dove farlo, che era di per sé divertente e informativo. Dict in dict:
g = sns.jointplot(x="total_bill", y="tip", data=tips, kind='reg',
joint_kws={'line_kws':{'color':'cyan'}}) # Only regression cyan
Oppure è possibile accedere alla linea dopo che è stato tracciato e modificarlo direttamente. Questo dipende dal fatto che la linea di regressione sia la prima linea tracciata, quindi potrebbe rompersi con gli aggiornamenti di Seaborn. È anche esteticamente/pedagogicamente diverso, in quanto non ricolorare la diffusione dell'incertezza. È un buon modo per familiarizzare con ciò che è l'oggetto JointGrid
e in quale altro modo è possibile interagire con esso. (E forse ci sono le proprietà, non è possibile impostare con gli argomenti della funzione di chiamata, anche se non posso pensare di qualsiasi.)
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')
Se Seaborn restituito gli artisti questo sarebbe molto facile. Il meglio che puoi fare, se non c'è una manopola nella funzione API, è guardare 'g.lines' per cercare di indovinare quale artista nella linea di regressione e poi fare' ln.set_color ('k') ' – tacaswell
@tcaswell Grazie per il suggerimento! Sfortunatamente l'oggetto AttributeError: 'JointGrid' non ha attributi 'lines'' – n1000