現在、2列のデータに基づいて散布図をプロットしています。ただし、3番目の列にあるクラスラベルに基づいてデータポイントに色を付けたいと思います。
3番目の列のラベルは1、2、または3のいずれかです。この3番目の列の値に基づいて散布図の点に色を付けるにはどうすればよいですか?
plt.scatter(waterUsage['duration'],waterUsage['water_amount'])
plt.xlabel('Duration (seconds)')
plt.ylabel('Water (gallons)')
scatter
関数は、色を表す数値のリストを受け取ります。必要に応じて、カラーマップを使用することもできます(ただし、そうする必要はありません)。
plt.scatter(waterUsage['duration'], waterUsage['water_amount'],\
c=waterUsage['third_column'], cmap=plt.cm.autumn)
辞書「色」に別のエントリを追加します
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カラーリスト: