1
2
3
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
1
2
#plt.rc('font', family='NanumBarunGothic')
plt.rcParams["figure.figsize"] = (12, 9)
5. Histogram
5-1. 기본 Histogram 그리기
plt.hist(x, bins= 빈도값)
- bins : 히스토그램의 빈도수 설정 (설정 값에 따라 히스토그램 모양이 다소 변할 수 있다.)
1
2
3
4
5
6
7
8
9
10
11
# 데이터 기초
N = 100000 # 전체 데이터 수
bins = 30 # histogram 빈도
# 데이터 생성
x = np.random.randn(N)
# 히스토 그램 생성
plt.hist(x, bins=bins)
plt.show()
5-2. 다중 Histogram 그리기
-
sharey: y축을 다중 그래프가 share 할 것인지 여부
-
tight_layout: graph의 배치를 자동으로 조절해주어 fit한 graph를 생성하는 기능
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 데이터 기초
N = 100000 # 전체 데이터 수
bins = 30 # histogram 빈도
# 데이터 생성
x = np.random.randn(N)
# canvas 그리기
fig, axs = plt.subplots(1, 3,
sharey=True,
tight_layout=True
)
fig.set_size_inches(12, 5, forward= True) #크기 바꾸기(inch 단위)
# forward=True 로 설정하면 canvas 사이즈가 자동으로 업데이트 된다.
# bins 값이 커질수록 더 오밀 조밀한 그래프가 그려진다.
axs[0].hist(x, bins=bins) # bins = 30
axs[1].hist(x, bins=bins*2) # bins = 30*2
axs[2].hist(x, bins=bins*4) # bins = 30*4
plt.show()
5-3. Y축에 Density 표기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
N = 100000
bins = 30
x = np.random.randn(N)
fig, axs = plt.subplots(1, 2,
tight_layout=True
)
fig.set_size_inches(9, 3)
# density=True 값을 통하여 Y축에 density를 표기할 수 있다.
# cumulative=True : 누적 분포로 표시하겠다.
axs[0].hist(x, bins=bins, density=True, cumulative=True)
axs[1].hist(x, bins=bins, density=True)
plt.show()
6. Pie Chart
pie chart 옵션
Type | Describe |
|—|——–|
explode | 파이에서 툭 튀어져 나온 비율 |
autopct | 퍼센트 자동으로 표기 |
shadow | 그림자 표시 |
startangle | 파이를 그리기 시작할 각도 |
스타일링 parameter
- texts, autotexts 는 인자를 리턴 받는다.
- texts는 label에 대한 텍스트 효과를 줄때 사용
-
autotexts는 파이 위에 그려지는 텍스트 효과를 다룰 때 사용.
- autopct는 파이 위에 표시되는 %의 소수점 자리수
-
%1.1f%% : 소수점 1번째 자리
- %1.2f%% : 소수점 2번째 자리
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
# 세부 설정
labels = ['Samsung', 'Huawei', 'Apple', 'Xiaomi', 'Oppo', 'Etc']
sizes = [20.4, 15.8, 10.5, 9, 7.6, 36.7]
explode = (0.3, 0, 0, 0, 0, 0) #tuple형태 - 각각의 데이터와 mapping 된다.
# texts, autotexts 인자를 활용하여 텍스트 스타일링을 적용
patches, texts, autotexts = plt.pie(sizes,
explode=explode, # 위에서 설정한 값대로 중심점에서 멀어진다.(튀어 나가는 정도)
labels=labels,
autopct='%1.1f%%', # 소수점 1번째 자리까지
shadow=True,
startangle=90) #labels 의 첫번째 value인 samsung이 그려질 위치
# Title 설정
plt.title('Smartphone pie', fontsize=15)
# label 텍스트에 대한 스타일 적용
# 각 test 별로 설정 위해 loop 사용
for t in texts:
t.set_fontsize(12)
t.set_color('gray')
# pie 위의 텍스트에 대한 스타일 적용
# 각 test 별로 설정 위해 loop 사용
for t in autotexts:
t.set_color("white")
t.set_fontsize(18)
plt.show()
References
댓글남기기