일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 파이썬
- 막대그래프
- pipwin
- riotapi
- covid
- matplotlib
- 라이엇
- API
- 코로나
- 인코등
- 지도
- 마커클러스터
- OSMnx
- map
- kepler
- 오픈API
- r
- geopnadas
- geopandas에러
- Python
- 시각화
- 라이엇api
- 공공데이터포털
- kepler.gl
- QGIS라벨링
- covid19
- Folium
- geopandas설치
- 에러
- 오류
- Today
- Total
Nerdy
[Matplotlib] 산점도 그래프(Scatter plot) 그리기 본문
# csv 파일
산점도 그래프를 그리기 위해 사용할 데이터는 iris 데이터다. iris 데이터는 꽃잎의 각 부분의 너비와 길이 등을 측청한 데이터이며 150개의 레코드로 구성되어 있다.
1. 데이터 가져오기
대상 데이터를 가져오기 위해 pandas 라이브러리를, 산점도 그래프를 그리기 위해 matplotlib 라이브러리를 import한다.
데이터 파일을 읽기 위해 pd.read.csv 함수를 사용하고 대상 컬럼은 1번 컬럼(Sepal.Length) 와 3번 컬럼(Petal.Length)으로 한다.
import pandas as pd
import matplotlib.pyplot as plt
# 파일 가져오기
iris = pd.read_csv("ch9_data/iris.csv")
iris
# 대상 컬럼 객체 생성
SL = iris['Sepal.Length']
PL = iris['Petal.Length']
2. 산점도 그리기와 함수 설명
2-1) figure
그래프 창 크기 조절을 위해 figure 함수를 사용하여 가로 8인치, 세로 6인치로 설정한다.
plt.figure(figsize=(8,6))
2-2) xlabel, ylabel
x축과 y축 레이블에 문자열을 설정할 수 있는 함수다. 1번 컬럼(Sepal.Length) 와 3번 컬럼(Petal.Length)을 각각 x, y축에 넣을 예정이니 레이블 내용을 'Sepal.Length', 'Petal.Length' 문자열을 넣었으며 글자 크기를 지정할 수 있는 fonsize 함수를 사용해 10으로 설정했다.
plt.xlabel('Sepal.Length', fontsize = 10)
plt.ylabel('Petal.Length', fontsize = 10)
2-3) title
그래프에 제목을 넣을 수 있는 title 함수다. xlabel, ylabel을 사용했던거처럼 문자열을 넣고 글자크기를 설정할 수 있다.
plt.title('Scatter Plot of Sepal.Lenght & Petal.Length', fontsize = 12)
2-4) scatter
본격적으로 산점도 그래프를 그릴 수 있는 함수인 scatter 함수다. 이 함수 안에 옵션이 다양하게 있으며 일부 사용했던 것들만 정리했다. SL 과 PL은 이전에 대상 컬럼들을 넣은 객체다. plt.scatter 함수 형식은 plt.scatter(x, y) 이며 x 데이터는 1번 컬럼, y 데이터는 3번 컬럼을 넣었다.
plt.scatter(SL, PL, c = SL, alpha = 0.35, s = 50, marker = '+', cmap = 'spring')
[1] alpah : 숫자값을 넣으면 산점도 색상의 투명도를 지정할 수 있다.
[2] s : 마커(점) 크기를 조정하는 방법이다.
[3] marker : 마커 모양을 변경할 수 있으며 'x', 'v', 's', '+', '*' 등 여러 모양을 지원하고 있다.
[4] cmap : 컬러맵을 설정할 수 있다. 컬러맵 종류는 다양하며 대표적으로 계절을 뜻하는 영어를 문자열로 넣으면 설정된 색상들을 자동으로 채워준다.
# 컬러맵 색상 더 보기 : https://wikidocs.net/141538
2-5) colorbar
사용된 색상의 컬러들을 수치화 하여 바 형식으로 나타내줄 수 있는 함수다. 문자열을 넣고 싶으면 plt.colorbar() 안에 label = '문자열'을 입력해주면 나타난다.
plt.colorbar(label = 'SL')
3. 결과
plt.figure(figsize=(8,6))
plt.xlabel('Sepal.Length', fontsize = 10)
plt.ylabel('Petal.Length', fontsize = 10)
plt.title('Scatter Plot of Sepal.Lenght & Petal.Length', fontsize = 12)
plt.scatter(SL, PL, c = SL, alpha = 0.35, s = 50, marker = '+', cmap = 'spring')
plt.colorbar(label = 'SL')
4. 컬럼을 대상으로 색상 적용 후 산점도 그래프 그리기
5번 컬럼(Species)는 꽃의 종류를 나타내는 문자열 데이터가 들어있다. 문자열 데이터 컬럼을 색상으로 지정하기 위해서는 범주형 데이터를 분류해야 한다.
4-1) 범주형 데이터 분류
5번 컬럼(Species)에 들어가져 있는 setosa, versicolor, virginica 문자열 데이터를 0, 1, 2 로 분류를 해야 하는데 이때 replace를 사용하면 쉽게 분류를 할 수 있다.
# 5번 컬럼 대상 객체 생성
Spec = iris['Species']
# 각각 0, 1, 2로 분류
Spec.color = Spec.replace({'setosa' : 0, 'versicolor' : 1, 'virginica' : 2})
4-2) 데이터 시각화
이전 내용과 동일하게 matplotlilb 라이브러리 import를 해주고 이전에 사용한 코드에 옵션만 몇개 변경을 해준 뒤 옵션 c 에 분류한 데이터를 객체에 담은 Spec.color를 넣어주면 된다. 옵션 c 는 마커의 색상을 지정해주는 파라미터다.
plt.figure(figsize=(8,6))
plt.scatter(SL, PL, c = Spec.color, alpha = 0.2, s = 75, marker = 'o', cmap = 'winter')
plt.title('Scatter Plot of Sepal.Lenght & Petal.Length with Species(color)',
fontsize = 12)
plt.xlabel('Sepal.Length', fontsize = 10)
plt.ylabel('Petal.Length', fontsize = 10)
plt.colorbar(label = 'Species')
5. 결과
'Python > [Matplotlib]' 카테고리의 다른 글
[Matplotlib] 천단위 콤마(,) 표시와 그래프 레이블 값 표시하기 (0) | 2022.06.25 |
---|---|
[Matplotlib] 코로나 사망자 주간 발생 추이 막대 그래프 그리기 (0) | 2022.06.24 |
[Matplotlib] 젤렌스키 대통령 연설문 Wordcloud 만들기 - 2 (0) | 2022.06.20 |
[Matplotlib] 젤렌스키 대통령 연설문 Wordcloud 만들기 - 1 (0) | 2022.06.20 |
[Matplotlib] 파이 차트 그리기 (0) | 2022.06.19 |