파이썬 버전 3.7 기준
matplotlib 버전 3.0.3 기준
산포그래프(scatter plot)의 작성법 |
본 포스팅에서는 scatter()함수의 작성법에 대한 설명과 산포그래프(scatter plot)를 직접 예제를 풀어보고자 한다.
산포그래프의 입력 인자에 대한 상세 설명은 뒷포스팅(링크)를 참고하도록한다.
산포그래프 작성 방법 |
산포그래프: 산포그래프(scatter plot)는 다양한 마커사이즈와 컬러를 사용하여 만든 플롯이다.
산포그래프의 단순한 작성 형식 |
먼저 가장 단순하게 산포그래프의 작성형식을 설명하자면 아래와 같다.
작성 형식)
path=scatter(x, y, s=None, c=None)
x, y
- x축과 y축을 리스트나 넘파이(Numpy)의 배열같이 이터레이블(iterable)한 자료형을 입력받는다.
s
- 선택적으로 입력하면 되는데 마커의 크기를 설정한다.
- 마커의 크기를 바꿀 필요가 있을때 입력하면 된다.
- 스칼라로 입력할 경우 마커의 크기는 고정이다
- x, y와 같은 요소수를 가지는 이터레이블한 자료형을 입력할 경우 각 마커마다 다른 크기를 설정할 수 있다.
c
- 역시 선택적으로 입력하면 되는데 마커의 색상을 설정한다.
- plot에서 선과 동일한 코드를 입력하는 것이 가능하다.
- s와 마찬가지로 x, y와 같은 요소수를 가지는 이터레이블한 자료형을 입력할 경우 각 마커마다 다른 색상을 설정할 수 있다.
이외에 plot에서 붙였던 라벨링 등 유사한 기능 역시 제공한다.
plot()함수와 scatter()함수 마커의 차이?
산포그래프의 단순한 작성 예제 |
산포그래프 작성함수인 scatter()에 대해서는 이후 포스팅(링크)에 자세히 설명하였다.
이 섹션에서는 단순하게 산포그래프를 작성해보는 스크립트 예제를 작성해본다.
먼저 X값은 x값에 대해서 선형적으로 올라가 값들이 x 축에서는 치우치지 않고 고루 분포되도록 설정하였다.
Y방향으로는 0에서 20 사이의 랜덤한 정수를 출력하여 분포시키도록 설정하였다.
마커의 크기를 담당하는 S 값은 크기의 변화를 랜덤하게 극적으로 보여주기 위해 랜덤함수를 만들고 100을 곱하여 크기를 키웠다.
C는 색을 랜덤하게 배정하도록 설정하였다.
아래 예제에서 다양한 함수들을 적용하여 플롯을 보기좋게 꾸몄는데 다양한 함수들에 대한 설명은 선행 포스팅(링크)를 참고하도록한다.
작성 예제) Scatter_ex.py
import matplotlib.pyplot as plt
import numpy as np
# 입력 데이터
X = np.arange(20)
Y = np.random.randint(0, 20, 20)
S = np.abs(np.random.randn(20))*100
C = np.random.randint(0, 20, 20)
# plot 입력
scatter = plt.scatter(X, Y, s=S, c=C, label='A')
# X 및 Y 범위 설정
plt.xlim(X[0]-1, X[-1]+1)
plt.ylim(np.min(Y-1), np.max(Y+1))
# 그래프의 타이틀과 x, y축 라벨링
plt.title('scatter', pad=10)
plt.xlabel('X axis', labelpad=10)
plt.ylabel('Y axis', labelpad=10)
# 틱설정
plt.xticks(np.linspace(X[0], X[-1], 11))
plt.yticks(np.linspace(np.min(np.append(Y, Y)), np.max(np.append(Y, Y)), 11))
plt.minorticks_on()
plt.tick_params(axis='both', which='both', direction='in', pad=8, top=True, right=True)
# 플롯 출력
plt.show()
|
|
|
| 참고자료 https://matplotlib.org/tutorials/introductory/pyplot.html#sphx-glr-tutorials-introductory-pyplot-py https://matplotlib.org/api/_as_gen/matplotlib.pyplot.scatter.html#matplotlib.pyplot.scatter |
|
'Python > Matplotlib' 카테고리의 다른 글
파이썬에서 히스토그램(histogram)의 작성법 - matplotlib(17) (1) | 2019.05.20 |
---|---|
산포그래프(scatter plot)의 옵션(키워드인자) 상세사항 - matplotlib(16) (0) | 2019.05.17 |
파이썬 plot(graph) 작성 예제 - matplotlib(14) (0) | 2019.05.12 |
레전드(legend, 범례) 함수의 옵션(입력 변수) - matplotlib(13) (0) | 2019.05.09 |
레전드(legend, 범례) 처리기(handler) 기초 - matplotlib(12) (0) | 2019.05.08 |
댓글