반응형
Python scatter plot 라벨 추가하기 예제
파이썬의 matplotlib(plt) 모듈로 산점도를 그린 뒤,
산점도의 각 점에 텍스트 레이블을 추가하는 방법을 간략하게 정리해 보겠습니다.
예시로, 다음과 같은 데이터프레임 df 정보에 대하여 산점도를 그려보겠습니다.
import pandas as pd
a = {'이름' : ['AA', 'BB', 'CC', 'DD', 'EE', 'FF'], 'x' : [0.7, 0.4, 1.2, 0.5, 1.3, 0.8], 'y' : [0.6, 1.0, 1.1, 0.5, 0.3, 0.9]}
df = pd.DataFrame(a)
df
우선, 각 행의 x 및 y 값을 기준으로 산점도를 그려본 결과는 아래와 같습니다.
import matplotlib.pyplot as plt
plt.scatter(df['x'], df['y'], color = 'r', s = 10)
plt.show()
반응형
기본적인 텍스트 라벨 추가 방법
이제 위에서 그린 scatter plot에 각 점의 이름 정보에 해당하는 text label을 추가해 보겠습니다.
과정을 간략하게 요약하면 먼저 df의 한 행씩 iloc 함수로 꺼내온 뒤,
x축, y축 좌표 및 라벨에 해당하는 열 이름을 기준으로 순서대로
plt.text 함수의 input으로 지정해주시면 되는 것으로 설명할 수 있습니다.
plt.scatter(df['x'], df['y'], color = 'r', s = 10)
for i in range(len(df)): # 행 개수만큼 순회
row = df.iloc[i] # 한 행씩 꺼내기
name = row['이름'] # 이름이 저장된 열
x = row['x'] # x좌표가 저장된 열
y = row['y'] # y좌표가 저장된 열
plt.text(x, y, name) # x 좌표, y좌표, 이름 순서로 input 지정
plt.show()
레이블 꾸미기를 포함하는 경우
plt.text 함수로 라벨을 그래프에 넣는 것이기에
해당 메소드의 다양한 기능을 통하여 레이블을 마음대로 꾸밀 수 있습니다.
예시로, x 및 y 좌표를 우측 위로 살짝 옮기고, 12포인트 크기 파란색 글씨로 지정하며,
이름이 CC 및 EE인 경우 label을 새기지 않게 설정한 코드 및 결과는 다음과 같습니다.
plt.scatter(df['x'], df['y'], color = 'r', s = 10)
for i in range(len(df)): # 행 개수만큼 순회
row = df.iloc[i] # 한 행씩 꺼내기
name = row['이름'] # 이름이 저장된 열
x = row['x'] # x좌표가 저장된 열
y = row['y'] # y좌표가 저장된 열
### 레이블 꾸미기 예시 ###
if name not in ['CC', 'EE']: # CC, EE는 제외
plt.text(x + 0.02, y + 0.02, name, color = 'b', fontsize = 12) # x, y좌표 및 색깔, 글자 크기 수정
plt.show()
'Python > Matplotlib' 카테고리의 다른 글
[Matplotlib] 파이썬 그래프 y축 절단(물결선 효과) 적용 방법 (0) | 2022.10.06 |
---|---|
[Matplotlib] 파이썬 그래프 회전 방법 예제 (1) | 2022.08.09 |
[Matplotlib] 파이썬 그래프 사이의 영역 색칠하기 : plt.fill_between() (0) | 2022.05.26 |