在散点图上用不同的颜色分隔不同的点

时间:2018-04-06 01:08:16

标签: python pandas matplotlib

这是我写的代码:

import pandas as pd
import matplotlib.pyplot as plt

data1 = pd.read_csv('F:\HCSE\sample_data1.csv',sep=';')
colnames = data1.columns

plt.plot(data1.iloc[:,0],data1.iloc[:,2],'bs')
plt.ylabel(colnames[2])
plt.xlabel(colnames[0])
plt.show()

这是我使用的数据:

Age;Gender;LOS;WBC;HB;Nothrophil
0.62;1;0.11;9.42;22.44;70.43
0.84;0;0.37;4.4;10.4;88.4
0.78;0;0.23;6.8;15.6;76.5
0.8;0;-0.02;9.3;15.1;87
0.7;1;0.19;5.3;11.3;82
0.25;0;0.27;5.9;10.6;87.59
0.32;0;0.37;3.1;12.5;15.4
0.86;1;0.31;4.1;10.4;77
0.75;0;0.21;12.07;14.1;88

最后,我绘制了可以在link here.

中找到的图表

我的问题是:我怎样才能为不同性别设置不同的颜色(例如:男性=红色,女性=蓝色)?

提前致谢

2 个答案:

答案 0 :(得分:1)

我认为你正在寻找这样的东西:

cols = {0: 'red', 1: 'blue'}

plt.scatter(data1.Age, data1.LOS, c=data1.Gender.map(cols))

答案 1 :(得分:0)

根据您的数据框架,您可以使用内置的df.plot.scatter()功能并将Gender传递给color关键字:

data1.plot.scatter(
    'Age', 'LOS',
    c='Gender', cmap='RdBu',
    edgecolor='None', s=45)

enter image description here

请注意,我还删除了每个点周围的黑色边框,并略微增加了尺寸。