728x90
반응형
(1) Scatter plot with density
밀도에 변환를 주는 Scatter plot을 그려보겠습니다.
import numpy as np
a = np.random.normal(size=1000)
b = a*3 + np.random.normal(size=1000)
numpy의 random.normal 함수를 사용하여, 1000개의 Point 데이터를 생성하였습니다.
import matplotlib.pyplot as plt
plt.hist2d(a, b, (50, 50), cmap=plt.cm.jet)
plt.colorbar()
Matplotlib 의 hist2d 함수를 사용하면, Density가 색상으로 표현되는 Scatter plot을 그릴 수 있습니다.
(2) Scatter plot with 추세선
다음으로 Scatter plot에 추세선을 추가로 그려보도록 하겠습니다.
import numpy as np
x = np.array([1, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9])
y = np.array([13, 14, 17, 12, 23, 24, 25, 25, 24, 28, 32, 33])
예제 데이터는 위와 같이 구성하였습니다.
import matplotlib.pyplot as plt
#create basic scatterplot
plt.plot(x, y, 'o')
#obtain m (slope) and b(intercept) of linear regression line
m, b = np.polyfit(x, y, 1)
#add linear regression line to scatterplot
plt.plot(x, m*x+b)
우선 x와 y에 대한 Point를 Plotting 합니다.
그리고 numpy의 polyfit 함수를 통해서 기울기와 y 절편 값을 구할 수 있습니다.
이 때, 1이 아닌 2 이상의 숫자를 인자로 사용하면, 다차항식을 적합할 수도 있습니다.
그리고 x와 mx+b로 그래프를 그리면 아래와 같은 그림을 얻을 수 있습니다.
사실 seaborm 패키지의 regplot을 사용하면 코드 한 줄로 쉽게 그릴 수도 있습니다.
import seaborn as sns
#create scatterplot with regression line
sns.regplot(x, y, ci=None)
이 때 ci는 confidence interval을 의미합니다.
반응형
'데이터 다루기 > 데이터 시각화' 카테고리의 다른 글
[Python 시각화] Bar plot (2) (0) | 2022.12.19 |
---|---|
[Python 시각화] Bar plot (1) (0) | 2022.12.19 |
[Python 시각화] Scatter plot (점 그래프) (0) | 2022.12.05 |
[R을 활용한 시각화] 9. ggplot2 (ECDF: 경험적 누적 밀도 함수) (0) | 2020.12.11 |
[R을 활용한 시각화] 8. ggplot2 (Violin plot) (0) | 2020.12.10 |