我正在尝试绘制散点图(x轴:第1列,y轴:第2列和第3列形状不同,同时为第4列中的相同条目着色)。有超过100行和column4的不同条目。我希望给一个条目及其重复的条目分配一种颜色。
它看起来像这样:
column1 column2 column3 column 4
1 3.1 7.5 a
2 3.5 8.4 b
3 4.6 7.3 c
4 2.1 9.3 a
我对此并不陌生,因此我正在寻找一些指导。
plt.scatter(data["column1"], data["column2"], 'o')
plt.scatter(data["column1"], data["column3"], 'x')
plt.xlabel('column1')
plt.ylabel('column2/column3')
plt.show()
Seaborn是一个不错的选择:
ax = sns.scatterplot(data=data, x='column1',
y='column2', hue='column 4',
marker='x', label='column2')
sns.scatterplot(data=data, x='column1',
y='column3', hue='column 4',
marker='o', ax=ax, label='column3')
输出:
您还可以融合数据框并将其传递给sns.scatterplot
:
sns.scatterplot(data=data.melt(id_vars=['column1', 'column 4'],
value_vars=['column2','column3'],
value_name='val',
var_name='col'),
x='column1',
y='val',
hue='column 4',
style='col')
产生更好的图例: