Как сделать диаграмму рассеяния в морской среде из 2 числовых столбцов и 1 категориального столбца? - PullRequest
0 голосов
/ 09 октября 2019

pic of my dataframe

Я хочу создать диаграмму рассеяния в морской среде (но я открыт для других способов выполнить это) из двух числовых столбцов данных и одного категориального столбца данных с двумя заголовкамичисловых столбцов на оси x, значения числовых столбцов на оси y и столбца cat, представленного оттенком. это похоже на то, что я хочу, с именами, первой игрой и последней игрой на оси x вместо 1 минуты и 15 минут

В моем наборе данных 50 баскетбольных команд, каждая сих собственный ряд (таким образом, есть 50 рядов). У каждой команды есть ярлык «хорошо» или «плохо». Метка - это категориальная колонка, которую я хочу на своем графике. В первом числовом столбце, который я хочу, указывается количество участников первой игры сезона, а во втором числовом столбце - количество участников последней игры сезона. Я подумал, что смогу построить это, используя морского рожка, но я не уверен, как обозначить x и y. Я попытался добавить два num столбца вместе в список, а затем перейти оттуда, но это не сработало. Какие-либо предложения...? Огромное спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

попробуйте следующее

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = [[8.98, 1.56, 'fail'],
        [8.91, 5.22, 'success'],
        [5.39, 2.13, 'fail'],
        [5.06, 1.61, 'fail'],
        [5.84, 2.86, 'fail']] 

df=pd.DataFrame(data=data, columns=['firstgame','lastgame','label'])

ax=sns.scatterplot(x='firstgame',y='lastgame',hue='label',data=df)
plt.show()

Это даст:

enter image description here

0 голосов
/ 09 октября 2019

Вы можете попробовать следующее:

## sample data, ignore this 
np.random.seed(1)
df = pd.DataFrame(np.random.randint(0,100, (50,2)),
                  columns=['firstgame','lastgame'])
df['label'] = np.random.choice(['good','bad'], 50)

## replace 'index' with your index name if any
sns.lineplot(data=df.reset_index().melt(id_vars=['index','label']), 
             hue='label', 
             style='variable', 
             x='index',
             y='value')

Выход:

enter image description here

...