일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- opencv
- 인공지능
- 코딩테스트
- 머신러닝
- 논문 리뷰
- pytorch
- Ai
- 프로그래머스
- 파이썬
- 알고리즘
- 논문
- transformer
- Self-supervised
- ViT
- Convolution
- 논문구현
- Segmentation
- Semantic Segmentation
- programmers
- 파이토치
- 논문리뷰
- optimizer
- Computer Vision
- cnn
- 옵티마이저
- Paper Review
- 딥러닝
- Python
- object detection
- 코드구현
- Today
- Total
Attention please
막대그래프 그리기(bar, barh) - matplotlib 본문
지금까지 plot과 scatter함수에 대해 알아보았습니다.
이번글에서는 bar 함수를 이용하여
막대그래프를 그려보겠습니다.
bar 함수에는 다양한 파라미터들이 존재합니다.
그 파라미터들을 어떤식으로 설정하면 어떻게 출력되는지
알아보겠습니다.
align
fig = plt.figure(figsize = (10, 5), dpi = 100)
axs = fig.subplots(1,2)
data = np.array([5, 25, 50, 20])
axs[0].bar(range(len(data)), data)
axs[1].bar(range(len(data)), data, align='edge')
bar함수의 파라미터 중 align을 'edge'로 하게 되면
막대를 기본 x축 위치에서 왼쪽 모서리로 이동시킵니다.
기본값은 'center' 이며 x축 위치에 중앙에 위치하도록 합니다.
width
이번에는 bar함수의 파라미터 중 width를 이용하여
막대그래프의 넓이를 조정할 수 있습니다.
fig = plt.figure(figsize = (8,4), dpi = 100)
axs = fig.subplots(1,2)
def make_bar(ax, data, w):
ax.bar(range(len(data)), data, width = w)
ax.set_title(f"width : {w}")
data = np.array([5, 25, 50, 20])
make_bar(axs[0], data, 0.5)
make_bar(axs[1], data, 1)
이번에는 따로 make_bar이라는 함수를 지정하여
시각화를 진행하였습니다.
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
barh
이번에는 barh 함수에 대해 알아보겠습니다.
지금까지의 막대그래프는 세로로 세워져있었습니다.
이번에는 옆으로 누워있는 막대그래프를 그리기 위한
barh 함수를 사용해보겠습니다.
fig = plt.figure(figsize = (5,5), dpi = 100)
ax = fig.subplots()
data = np.array([5,25,50,20])
ax.barh(range(len(data)), data)
위 코드를 실행시키면 다음과 같은 결과가 출력됩니다.
다중 막대차트
이번에는 다중 막대차트를 그려보겠습니다.
그리는 방식은 저번 글에서 plot으로 한 Axes에 여러 그래프를 그리는 것처럼
같은 Axes에 bar 함수를 동시에 실행시킵니다.
코드로 확인하겠습니다.
fig = plt.figure(figsize = (5,5), dpi = 100)
ax = fig.subplots()
data = np.array([[5,25,50,20],[4,27,48,24],[7,23,54,26]])
X = np.arange(4)
ax.bar(X + 0. , data[0], width = 0.25)
ax.bar(X + 0.25 , data[1], width = 0.25)
ax.bar(X + 0.5 , data[2], width = 0.25)
위 코드처럼 다중 막대차트를 그리기 위해서는
x좌표를 미리 설정한 후
데이터에 맞게 x좌표를 변경해주어야 합니다.
분할 막대차트
이번 글에서는 분할 막대차트를 그려보겠습니다.
이 역시 다중 막대차트처럼 같은 Axes에
여러 bar그림을 그리는 것으로 나타냅니다.
fig = plt.figure(figsize = (8,4), dpi = 100)
axs = fig.subplots(1,2)
data = np.array([[20, 10, 25, 30],
[10, 13, 8, 9],
[4, 6, 5, 6]])
X = np.arange(4)
_=axs[0].bar(X, data[0])
_=axs[0].bar(X, data[1], bottom=data[0])
_=axs[0].bar(X, data[2], bottom=data[0] + data[1])
# for loop로 간단히
for i in range(len(data)):
_=axs[1].bar(X, data[i], bottom=np.sum(data[:i], axis=0))
양방향 막대차트
이번에는 양방향 막대차트를 그려보도록 하겠습니다.
이 그래프는 두 피처에 대해 비교하기 위해 사용하는
시각화 기법입니다.
fig = plt.figure(figsize = (4,4), dpi = 100)
ax = fig.subplots()
W = np.array([35, 25, 20, 40])
M = np.array([30, 15, 30, 45])
X = np.arange(4)
ax.barh(X, W, color = 'r')
ax.barh(X, -M, color = 'b')
양뱡향 막대차트를 그리기 위해 사용하는 함수는
위에서 사용했던 barh 함수입니다.
가로로 막대를 그리기 위해 barh 함수를 사용했으며,
양방향을 표현하기 위해 서로 부호를 다르게 조정해주었습니다.
'데이터 시각화 > matplotlib' 카테고리의 다른 글
히스토그램 그리기(hist) - matplotlib (0) | 2022.10.08 |
---|---|
원형차트(pie) 그리기 - matplotlib (0) | 2022.10.08 |
scatter 함수 사용하기 - matplotlib (0) | 2022.10.07 |
데이터셋 시각화 - matplotlib (0) | 2022.10.07 |
Plot(곡선 그리기) (0) | 2022.10.05 |