web-dev-qa-db-ja.com

3番目の列の値に基づいて色の散布図のポイントは?

現在、2列のデータに基づいて散布図をプロットしています。ただし、3番目の列にあるクラスラベルに基づいてデータポイントに色を付けたいと思います。

3番目の列のラベルは1、2、または3のいずれかです。この3番目の列の値に基づいて散布図の点に色を付けるにはどうすればよいですか?

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

scatter関数は、色を表す数値のリストを受け取ります。必要に応じて、カラーマップを使用することもできます(ただし、そうする必要はありません)。

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

辞書「色」に別のエントリを追加します

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、hex、htmlの色を受け入れます。

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

グループ別のhtmlカラーリスト:

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

2
litepresence