为4列中的相同条目应用相同颜色散点图matplotlib python

问题描述 投票:0回答:1

我正在尝试绘制散点图(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()
python pandas matplotlib scatter-plot
1个回答
1
投票

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')

输出:

enter image description here

您还可以融合数据框并将其传递给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')

产生更好的图例:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.