Как изменить цвет линии в jointplot линейной регрессии 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()
однако с большим количеством точек данных линия регрессии больше не видна. Как я могу изменить его цвет? Я не мог найти команду из морских Рожков.
Если линия находится в фоновом режиме (т. е. за точками), я также хотел бы спросить, как вывести ее на передний план.
1 ответов
есть пара подходов, как тактично отметил мваском. Вы можете передать аргументы на совместный сюжет, но установив color
там влияет на весь scatterplot:
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
чтобы выяснить, где это сделать, что было занимательно и познавательно само по себе. Дикт в дикт:
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')