2017-03-08 7 views
1

현재 두 개의 데이터 열을 기반으로 한 산점도를 플로팅 중입니다. 그러나 세 번째 열에있는 클래스 레이블을 기반으로 데이터 포인트의 색을 지정하고 싶습니다.세 번째 열의 값을 기준으로 색상 분산 점을 지정 하시겠습니까?

내 세 번째 열의 레이블은 1,2 또는 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 "로 색상을"다른 항목을 추가 육각 및 HTML 색상 :

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

HTML 컬러리스트, 그룹 별 :