이번 포스팅에서는
Matplotlib 라이브러리를 활용해서
산점도(scatterplot)를 그려 볼게요.
앞선 포스팅에서와 마찬가지로
기본적인 환경 세팅을 하겠습니다.
① matplotlib 라이브러리 사용 정의
② 그래프에서 환경설정이 가능하도록 폰트 설정
③ 한글 사용이 (-) 부호가 깨지는 현상 방지
import matplotlib.pyplot as plt # matplotlib 라이브러리 load
## 한글 사용 가능하도독 폰트 설정
import matplotlib
matplotlib.rcParams['font.family'] = 'Malgun Gothic' # os: window
matplotlib.rcParams['axes.unicode_minus'] = False # 한글 폰트 사용 시 (-) 부호 깨짐 현상 해결
이렇게 설정하면,
그래프에 한글과 (-) 부호 사용에 대한 걱정이 없어요.
실습에 사용할 데이터는
iris 붓꽃 데이터입니다.
기본 그래프(.scatter())
## iris data 가져오기
irisData = pd.read_csv("C:/iris.csv")
## 산점도 그리기
plt.scatter(irisData['SepalLength'], irisData['SepalWidth'])
x, y축에 대한 설명을 추가할게요.
plt.scatter(irisData['SepalLength'], irisData['SepalWidth']) # 기본 산점도 그래프
plt.xlabel('SepalLength') # x축 설명 추가
plt.ylabel('SepalWidth') # y축 설명 추가
다음은 붓꽃 종류별로
점 크기를 다르게 표현해 볼게요.
그러려면, 붓꽃 종류별로
숫자를 먼저 세팅해 주어야 합니다.
그룹(붓꽃 종류) 별 점 크기 조정
## 산점도의 점 크기 변경을 위한 붓꽃 종류별 숫자 부여
import numpy as np # numpy 라이브러리 로딩
irisData['species_grp'] = np.where(irisData['Species'] == "setosa", 10,
np.where(irisData['Species'] == "versicolor", 30, 100))
plt.scatter(irisData['SepalLength'], irisData['SepalWidth'], s = irisData['species_grp'])
plt.xlabel('SepalLength')
plt.ylabel('SepalWidth')
이번에는 점의 색상도 변경해 볼게요.
산점도 점 색상 변경하기
## 산점도의 점 색상 변경하기 1
plt.scatter(irisData['SepalLength'], irisData['SepalWidth'],
s = irisData['species_grp'],
c = irisData['species_grp'])
plt.xlabel('SepalLength')
plt.ylabel('SepalWidth')
## 산점도의 점 색상 변경하기 2 - cmap 활용
plt.scatter(irisData['SepalLength'], irisData['SepalWidth'],
s = irisData['species_grp']*100,
c = irisData['species_grp'],
cmap = 'plasma')
plt.xlabel('SepalLength')
plt.ylabel('SepalWidth')
위에서 사용한 cmap은
일종의 그라데이션이라고 보시면 됩니다.
자세한 옵션은 아래를 참고하세요.
산점도에 투명도를 적용할 수도 있어요.
투명도 적용
## 산점도 투명도 적용
plt.scatter(irisData['SepalLength'], irisData['SepalWidth'],
s = irisData['species_grp']*100,
c = irisData['species_grp'],
cmap = 'plasma',
alpha = 0.4)
plt.xlabel('SepalLength')
plt.ylabel('SepalWidth')
이제 마지막으로
범례 형식의 막대를 추가해 볼게요.
범례 형식의 막대 추가
## 범례 형식의 색상 막대 추가
plt.scatter(irisData['SepalLength'], irisData['SepalWidth'],
s = irisData['species_grp'],
c = irisData['species_grp'],
cmap = 'plasma',
alpha = 0.4)
plt.xlabel('SepalLength')
plt.ylabel('SepalWidth')
plt.colorbar()
## 범례 형식의 색상 막대에 대한 옵션 및 라벨 추가
plt.scatter(irisData['SepalLength'], irisData['SepalWidth'],
s = irisData['species_grp'],
c = irisData['species_grp'],
cmap = 'plasma',
alpha = 0.4)
plt.xlabel('SepalLength')
plt.ylabel('SepalWidth')
plt.colorbar(ticks = [20,60,100], label = '붓꽃 종류')
## 범례 형식의 색상 막대 길이 조정
plt.scatter(irisData['SepalLength'], irisData['SepalWidth'],
s = irisData['species_grp'],
c = irisData['species_grp'],
cmap = 'plasma',
alpha = 0.4)
plt.xlabel('SepalLength')
plt.ylabel('SepalWidth')
plt.colorbar(ticks = [20,60,100], label = '붓꽃 종류', shrink = 0.5)
## 범례 형식의 색상 막대 위치 조정
plt.figure(figsize = (10,7))
plt.scatter(irisData['SepalLength'], irisData['SepalWidth'],
s = irisData['species_grp'],
c = irisData['species_grp'],
cmap = 'plasma',
alpha = 0.4)
plt.xlabel('SepalLength')
plt.ylabel('SepalWidth')
plt.colorbar(ticks = [20,60,100], label = '붓꽃 종류', shrink = 1.0, orientation = 'horizontal')
반응형
'Python > 데이터 시각화' 카테고리의 다른 글
막대그래프에 도형(타원) 삽입하기 (0) | 2022.04.16 |
---|---|
워드 클라우드(Word Cloud) 생성하기(with 파이썬 DataFrame) (0) | 2022.02.28 |
matplotlib 파이 차트 그리기 (0) | 2022.02.26 |
matplotlib 막대그래프 그리기 (0) | 2022.02.25 |
matplotlib 선 그래프 그리기 (0) | 2022.02.20 |
댓글