在第三列的值基础上给散点图点着色?

2024-05-23 17:00:43 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我第三列的标签是1、2或3。如何根据第三列中的值为散点图点上色?

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

Tags: 数据绘制plt标签amountsecondsdurationwater
2条回答

在字典中添加另一个条目“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

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

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

相关问题 更多 >