2017-03-08 17 views
1

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

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

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

答えて

4

scatter機能は、喜んで色を表す数字のリストを取ります。あなたがしたい場合は、あまりにも、カラーマップで遊ぶことができます(ただし、あなたがする必要はありません):

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

あなたの方法では、どの色が私の第3列のどの番号に対応しているかを知るにはどうすればいいですか? – Gary

+0

カラーバーを追加します: 'plt.colorbar()' – DyZ

0

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

関連する問題