Подтвердить что ты не робот

Scatterplot без линейной посадки в море

Мне интересно, есть ли способ отключить линейную посадку в морском lmplot или если есть эквивалентная функция, которая просто создает диаграмму рассеяния. Конечно, я мог бы также использовать matplotlib, однако я считаю, что синтаксис и эстетика в морском море весьма привлекательны. Например,. Я хочу построить следующий сюжет

import seaborn as sns
sns.set(style="ticks")

df = sns.load_dataset("anscombe")
sns.lmplot("x", "y", data=df, hue='dataset')

enter image description here

Без линейного соответствия так:

from itertools import cycle
import numpy as np

import matplotlib.pyplot as plt

color_gen = cycle(('blue', 'lightgreen', 'red', 'purple', 'gray', 'cyan'))

for lab in np.unique(df['dataset']):
    plt.scatter(df.loc[df['dataset'] == lab, 'x'], 
                df.loc[df['dataset'] == lab, 'y'], 
                c=next(color_gen),
                label=lab)

plt.legend(loc='best')

enter image description here

4b9b3361

Ответ 1

установите аргумент fit_reg в False:

sns.lmplot("x", "y", data=df, hue='dataset', fit_reg=False)

Ответ 2

Это не дает прямого ответа на вопрос, но может помочь другим, кто найдет здесь способ, которые просто хотят сделать простой старый разброс.
Начиная с версии 0.9.0 у seaborn теперь есть метод scatterplot.

import seaborn as sns
sns.set(style="ticks")

df = sns.load_dataset("anscombe")
sns.scatterplot("x", "y", data=df, hue='dataset')

enter image description here

Ответ 3

Я рекомендую вместо sns.lmplot() использовать sns.scatterplot()

# import libaries
import seaborn as sns

# load tips dataset from GitHub seaborn repository
tips_df = sns.load_dataset("tips")

#create scatter plot
sns.scatterplot(x = "tip", y = "total_bill", data = tips_df, hue ="sex")

Чтобы узнать подробности, следуйте графику рассеяния морского волка, используя руководство sns.scatterplot()