지난번에 matplotlib을 활용해서 산점도 그래프 그리는 법을 알아봤습니다.
이번에는 산점도에 label을 추가하는 방법을 알아보고자 합니다.
label 또는 텍스트를 추가한다는 말은 아래 그림과 같이 id1~3까지의 텍스트가
그림위에 표현 되는 것입니다.
그럼 matplotlib을 먼저 불러옵니다.
1
|
from matplotlib import pyplot as plt
|
cs |
지난번에 배웠던 산점도 그리는 코드를 기억하실까요?
2가지 방법으로 배웠는데,
첫번째는 case마다 직접 명시를 해주는 방법과
두번째로는 for문을 활용해 산점도를 그리는 방법이었어요.
오늘은 간단히 첫번째 방법으로 그려볼게요.
(어차피 label을 입력할 때 for문을 써줘야 하기 때문에)
1
2
3
4
5
6
7
8
9
10
|
plt.figure(figsize=(10,8))
types_tf=df['result'].unique()
# unique한 값은 TP, FN, TN, FP임
plt.scatter(x=df[df['result']=='TP']['colA'], y=df[df['result']=='TP']['colB'], alpha=0.7)
plt.scatter(x=df[df['result']=='FN']['colA'], y=df[df['result']=='FN']['colB'], alpha=0.7)
plt.scatter(x=df[df['result']=='TN']['colA'], y=df[df['result']=='TN']['colB'], alpha=0.7)
plt.scatter(x=df[df['result']=='FP']['colA'], y=df[df['result']=='FP']['colB'], alpha=0.7)
plt.legend(labels=types_tf)
|
s |
자 그럼 기본적으로 그래프를 그리는 코드를 작성했습니다.
여기서 label을 추가하기 위해서는 몇줄의 코드를 위의 코드창에 추가 해 주면 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
plt.figure(figsize=(10,8))
types_tf=df['result'].unique()
# unique한 값은 TP, FN, TN, FP임
plt.scatter(x=df[df['result']=='TP']['colA'], y=df[df['result']=='TP']['colB'], alpha=0.7)
plt.scatter(x=df[df['result']=='FN']['colA'], y=df[df['result']=='FN']['colB'], alpha=0.7)
plt.scatter(x=df[df['result']=='TN']['colA'], y=df[df['result']=='TN']['colB'], alpha=0.7)
plt.scatter(x=df[df['result']=='FP']['colA'], y=df[df['result']=='FP']['colB'], alpha=0.7)
#아래와 같은 코드로 label(student_id)을 덮어 씌워줌
for k, t in df[df['result']=='FP'][['math','eng','student_id']].iterrows():
plt.text(t[0], t[1]+0.01, t[2])
plt.legend(labels=types_tf)
|
cs |
중간에 for문으로 덮어씌울 텍스트 값을 넣어준 것이 보이시나요?
간단히 코드를 설명해볼게요.
iterrows()라는 함수는 각 행을 하나의 list로 받는 것이라고 생각하면 될거같아요!
여기서 k[1]은 첫행이고,
그 안에 t[0]는 'math'컬럼값을
t[1]은 'eng'컬럼값을
t[2]는 'student_id'값을 받는다고 생각하시면 돼요.
text(t[0], t[1]+0.01, t[2])
그렇다면 이제 이 텍스트 함수를 생각해볼게요.
text(x, y, label) 이라고 생각해주시면 되는데,x는 label이 위치할 x좌표y는 label이 위치할 y좌표
그리고 마지막에는 입력할 label의 값을 넣어주면 되는 것이에요.
그렇게 개별 좌표마다 for문을 돌면서 label을 그림 위에 덮어 씌우는 것입니다.
혹시 지난번 산점도 그림 그리는 것에 대해 상세 설명이 필요하다면
아래 링크 참고하세요!
https://sarah0518.tistory.com/95
'IT > 파이썬' 카테고리의 다른 글
cmap을 활용한 산점도 그리기(Label Encoder활용) (0) | 2022.09.22 |
---|---|
[그래프] subplot 활용하기 (0) | 2021.08.12 |
if문과 apply함수로 파생변수 만들기 (0) | 2021.08.04 |
[그래프] for문으로 산점도 그리기 plt.scatter 활용 (0) | 2021.08.02 |
Bayesian optimization (0) | 2021.06.29 |