我想用两个数值列和一个分类列在seaborn中绘制散点图(但我愿意采用其他方式执行),其中两个数值列的标题在x轴上, y轴上的数字列的值,用色相表示的cat列。 this is kind of like what I want, with the names, firstgame and lastgame on the x axis instead of 1 minute and 15 minute
我的数据集中有50个篮球队,每个篮球队都有自己的行(因此有50行)。每个团队都有一个标签,“好”或“坏”。标签是我想要在绘图中使用的分类列。我想要的第一个数字列具有本赛季第一场比赛的参加人数,第二个数字列具有本赛季最后一场比赛的参加人数。我以为我可以使用seaborn来绘制此图,但是我不确定如何指定x和y。我尝试将两个num列一起添加到列表中,然后从那里开始,但这并没有真正解决。有什么建议么...?提前非常感谢您。
答案 0 :(得分:0)
您可以尝试以下操作:
## 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')
输出:
答案 1 :(得分:0)
尝试以下
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()
这将产生: