Цвет диаграммы рассеяния Seaborn по осям X и Y - PullRequest
0 голосов
/ 19 июня 2020

У меня проблемы с раскраской того, что должно быть простым графиком рассеяния. Я рисую два столбца для сравнения в моем фрейме данных pandas, но я хотел бы раскрасить диаграмму разброса по X и Y. Таким образом, разброс по X будет красным, а разброс по Y будет черным.

Вот отрывок из того, что я сделал до сих пор. Это с sns.lmplot, но я также пробовал с sns.scatterplot.

fig, ax = plt.subplots(figsize=(10, 5))

x=df_layer10s2['xco2'].values
y=df_layer10s2['xco2_part'].values
col = (if x then 'r', else 'black')
ax= sns.lmplot(x='xco2',y='xco2_part',data=df_layer10s2)
# plt.ylim(389,404)
# plt.xlim(389,404)

также вот изображение того, как настроен мой фрейм данных:

enter image description here

1 Ответ

1 голос
/ 21 июня 2020

Думаю, вы путаете параметры lmplot. Кроме того, вы можете использовать вместо него regplot, поскольку вы не используете функции, которые делают lmplot отличным от regplot. В любом случае кажется, что вы должны использовать столбец 'time' в качестве значений x и 'xco2' и 'xco2_part' как значения y. В этом случае вы можете сделать два вызова построения графика и установить свой параметр color. Примерно так:

sns.regplot(x='time', y='xco2', data=df_layer10s2, color='r')
sns.regplot(x='time', y='xco2_part', data=df_layer10s2, color='k')

Вот пример:

np.random.seed(42)
time = np.random.random(50)
y0 = np.random.random(50)
y1 = np.random.random(50)
df = pd.DataFrame({'time': time, 'y0': y0, 'y1': y1})

sns.regplot(x='time', y='y0', data=df, color='r')
sns.regplot(x='time', y='y1', data=df, color='k')

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...