728x90
cmap을 활용한 산점도 그리기를 연습해보려고 합니다.
cmap을 활용하게 되면 일일이 색상을 정해주지 않아도,
다양한 값에대해 colorbar의 값과 매칭해주어 색상을 표현할 수 있습니다.
아래와 같은 그림처럼 표현이 가능한 것입니다.
현재 아래와 같은 데이터가 있다고 가정해볼게요.
수학성적(평균) | 영어성적(평균) | 학급 |
85.7 | 93.2 | A |
82.1 | 77.8 | B |
92.1 | 85.2 | C |
95.2 | 88.3 | D |
학급에 해당하는 값이 색깔로 표현되게 만들 예정입니다.
하지만, 아래와 같이 범주형 컬럼인 class를 그대로 넣어주면
1
|
plt.scatter(x=df['math'], y=df['eng'], c=df['class'], cmap='viridis')
|
cs |
c of shape (50232,) not acceptable as a color sequence for x with size 50232, y with size 50232
위와 같은 에러가 확인됩니다.
왜냐하면, 해당 색상에 대응되는 값들은 숫자값이여야 에러가 안나요.
A | B | C |
0 | 1 | 2 |
범주형 값을 숫자로 바꿔주는 코드는 아래와 같습니다.
1
2
3
4
5
|
from sklearn.preprocessing import LabelEncoder
cat_to_num=Labelencoder()
cat_to_num.fit(df['class'])
df['class_num']=cat_to_num.transform(df['class'])
|
cs |
위와 같이 변경 후, 다시 산점도를 그려주면
1
|
plt.scatter(x=df['math'], y=df['eng'], c=df['class_num'], cmap='viridis')
|
cs |
원하는 산점도 그래프를 아래와 같이 그릴 수 있습니다.
728x90
'IT > 파이썬' 카테고리의 다른 글
[그래프]산점도에 label 추가하기 (0) | 2021.09.17 |
---|---|
[그래프] subplot 활용하기 (0) | 2021.08.12 |
if문과 apply함수로 파생변수 만들기 (0) | 2021.08.04 |
[그래프] for문으로 산점도 그리기 plt.scatter 활용 (0) | 2021.08.02 |
Bayesian optimization (0) | 2021.06.29 |