일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Computer Vision
- Python
- cnn
- Paper Review
- pytorch
- 알고리즘
- 파이토치
- ViT
- programmers
- 머신러닝
- 논문 리뷰
- object detection
- 프로그래머스
- 인공지능
- Semantic Segmentation
- Self-supervised
- 코드구현
- 옵티마이저
- 딥러닝
- 코딩테스트
- 파이썬
- 논문
- 논문리뷰
- opencv
- Segmentation
- 논문구현
- transformer
- optimizer
- Convolution
- Ai
- Today
- Total
Attention please
Figure & Axes 본문
제 블로그에서 데이터를 시각화하기 위해서 다루는 언어는 python이며,
사용하는 패키지는 matplotlib입니다.
이번 글에서는 시각화를 하기 위한 가장 밑작업인
figure를 만들고 axes를 만들어 그래프를 그리는 것까지 설명하겠습니다.
figure
먼저 matplotlib 패키지를 불러오겠습니다.
import matplotlib.pyplot as plt
이제 그래프를 그려보겠습니다.
matplotlib으로 그림을 그릴 때 특히 선그래프일 경우
x좌표와 y좌표를 따로 입력하여 그래프를 그립니다.
예를 들어 x = [1,2,4,3], y = [5,6,7,8] 로 설정한 후
그래프를 그리게 되면
좌표가 (1,5), (2,6), (4,7), (3,8) 네점으로 연결하여 그래프를 그립니다.
그럼 직접 저 위의 x, y좌표대로 그래프를 그려보겠습니다.
fig = plt.figure(figsize = (5,3), dpi = 100) # figsize로 그림 크기 조절 / dpi : 화질설정
ax = fig.subplots()
x = [1,2,4,3]
y = [5,6,7,8]
ax.plot(x,y)
위와 같이 코드를 주게되면 다음과 같은 그래프가 출력됩니다.
Axes
위에서 했던 것처럼 axes에 대해 따로 설정하지 않으면
그림을 그릴 수 있는 도화지가 하나밖에 생성되지 않습니다.
만약 그림 여러개를 한번에 출력하고 싶다면
axes를 이용할 수 있습니다.
fig = plt.figure(figsize = (4,4), dpi = 100)
axes = fig.subplots(1,2)
x1 = [1,2]
y1 = [1,2]
x2 = [1,2]
y2 = [2,1]
_=axes[0].set_title('ax1') # 그림에 대한 제목 설정
_=axes[0].plot(x1, y1)
_=axes[1].set_title('ax2')
_=axes[1].plot(x2, y2)
위 코드처럼 axes를 조절하여 그림을 그릴 수 있는 도화지를
행 1개 열2 로 설정하였으며, 그에 맞게 그래프를 2개 그렸습니다.
위 코드를 실행하면 다음과 같은 결과가 나오게 됩니다.
곡선그리기
기본적으로 matplotlib이 그림을 그리는 방식은
점 하나하나를 지정한 후 연결하는 식으로 그림이 그려지게 됩니다.
즉, 곡선을 그리고 싶다면
점 하나하나의 간격을 좁게 하여 곡선처럼 보이는 직선을 그리면 됩니다.
fig=plt.figure(figsize=(4,4), dpi=100)
ax=fig.subplots()
X=range(-100, 100)
Y=[value**2 for value in X]
_=ax.plot(X,Y)
위 코드를 실행시키면 다음과 같은 결과가 나오게 됩니다.
위와 같이 곡선이 출력되었습니다.
정확히 말하면 곡선이 아닌 직선이지만 촘촘하게 연결되어
일반적으로 보기에는 곡선처럼 보이게 출력이 되게 됩니다.
Color & Style
나중에 이 부분에 대해서 자세하게 다루겠지만
위 plot을 그릴 때 좀더 다채로운 설정을 위해 조금만 다루겠습니다.
지금까지는 그림을 그릴 때 선그래프만 다루었습니다.
하지만 점들을 연결하지 않고 점만을 출력하고 싶을 때는
Style설정을 조절하면 됩니다.
또 색을 검은색이 아닌 다른 색으로 설정하고 싶을 때는
Color 설정을 조절하면 됩니다.
ob
fig=plt.figure(figsize=(5,5), dpi=100)
ax=fig.subplots()
X=np.arange(0,100,10)
Y=X**2
ax.plot(X, Y, 'ob')
위 코드처럼 plot함수안에 color와 style을 설정하는 파라미터를
채워주면 됩니다.
(default값은'-'입니다)
위에서 설정한 것은 'ob'이고
o 은 점을 b 는 blue를 의미합니다.
위 코드를 실행하면 다음과 같은 결과가 나오게 됩니다.
--r
--r에서 --은 점선을 의미하며, r은 red를 의미합니다.
위 설정에 맞게 코드를 작성해보겠습니다.
fig=plt.figure(figsize=(5,5), dpi=100)
ax=fig.subplots()
X=np.arange(10)
Y=(X-5)**2
ax.plot(X,Y, '.--r')
위 코드를 실행시키면 다음과 같은 결과가 나오게 됩니다.
s--r
스타일 설정으로 다양한 모양의 그래프들을 그릴 수 있는데,
예를 들어 선 사이사이에 네모가 들어가게 그릴 수도 있습니다.
fig = plt.figure(figsize = (5,5), dpi = 100)
ax = fig.subplots()
X = [0, 10, 20, 0]
Y = [0, 10, 0, 0]
ax.plot(X,Y, 's--r')
위 코드를 실행시키면 다음과 같은 결과나 나오게 됩니다.
뒤에서 칼라와 스타일에 대해선 더 자세하게 다루겠지만
이정도의 간단한 룰만 숙지해도 표현할 수 있는 것들이 정말 많아지게 됩니다.
'데이터 시각화 > matplotlib' 카테고리의 다른 글
원형차트(pie) 그리기 - matplotlib (0) | 2022.10.08 |
---|---|
막대그래프 그리기(bar, barh) - matplotlib (0) | 2022.10.08 |
scatter 함수 사용하기 - matplotlib (0) | 2022.10.07 |
데이터셋 시각화 - matplotlib (0) | 2022.10.07 |
Plot(곡선 그리기) (0) | 2022.10.05 |