基于第三列中的值的颜色散点图?

时间:2017-03-08 00:24:18

标签: python matplotlib scatter-plot

我目前正在根据两列数据绘制散点图。但是,我想根据第三列中的类标签为数据点着色。

我的第三列中的标签是1,2或3.我如何根据第三列中的值为散点图颜色着色?

plt.scatter(waterUsage['duration'],waterUsage['water_amount'])
plt.xlabel('Duration (seconds)')
plt.ylabel('Water (gallons)')

2 个答案:

答案 0 :(得分:9)

scatter函数愉快地获取表示颜色的数字列表。如果你想要(但你不需要),你也可以使用色彩图:

plt.scatter(waterUsage['duration'], waterUsage['water_amount'],\
            c=waterUsage['third_column'], cmap=plt.cm.autumn)

答案 1 :(得分:1)

在词典“color”中添加另一个条目

def addcolor(b):

    a=b
    for x in range(len(a['third_column'])):
        if a['third_column'][x]==1: a['color'][x]='rosybrown'
        elif a['third_column'][x]==2: a['color'][x]='papayawhip'
        elif a['third_column'][x]==3: a['color'][x]='chartreuse'
    return a

waterUsage = addcolor(waterUsage)

plt.scatter(waterUsage['duration'], 
            waterUsage['water_amount'],
            c=waterUsage['color'])

matplotlib接受灰度,rgb,十六进制和html颜色:

http://matplotlib.org/api/colors_api.html

html颜色列表,按组:

https://www.w3schools.com/colors/colors_groups.asp