반응형

파이썬 데이터 분석 / matplotlib - 여러 개의 그래프 그리기 subplot()

 

subplot() 함수

여러 개의 그래프를 하나의 그림에 나타내도록 하는 함수 입니다. 

함수를 호출하면, 각 그래프의 인스턴스가 반환되어, 각 그래프의 정보에 접근하여 그래프를 설정할 수 있게 됩니다. 

 

subplot의 전달인자는 아래와 같고, row와 column에 따라 아래 그림과 같이 출력됩니다. 

2 x 2 크기의 그래프를 만들어 보겠습니다. 

그래프 4개가 보여지고, 데이터를 입력하지 않아 빈 그래프만 보입니다. 

첫번째 그래프에 데이터를 입력해 보겠습니다.

첫번째 그래프와 세번째 그래프의 인스턴스인 ax1과 ax3에 plot() 함수를 통해 데이터를 입력하였습니다.

그러면 아래와 같이 표시되는 것을 볼 수 있습니다. 

그런데 4개의 그래프의 위치가 너무 붙어 있는 것처럼 보여, 헷갈려 보입니다. 

각 그래프 위치를 조절해 보겠습니다. 

x

약간 구분이 가도록 각 그래프의 크기와 간격을 자동으로 변경해주는 함수가 tight_layout() 함수입니다.

이 함수를 사용하게 되면 아래와 같이 그래프의 사이가 조절되는 것을 볼 수 있습니다.

각 그래프의 크기와 간격을 수동으로 변경해주려면 subplots_adjust() 함수를 사용합니다.

wspace와 hspace는 각 그래프 사이의 간격을 위해 각각 그래프의 너비와 높이에 대한 비율을 조절합니다. 

left, bottom, right, top은 각 그래프의 4면의 위치를 조절합니다. 

 

반응형
반응형

파이썬 데이터 분석 / matplotlib 패키지 라인 플롯(line plot) 스타일 설정

 

데이터 생성

우선 plot의 스타일을 알아보기 위해 데이터를 생성합니다.

 

matplotlib 색상 지정

라인의 색상을 정하기 위해 색상 옵션을 설정할 수 있습니다.

색상을 지정하는 방법은 색 이름 또는 약자 또는 #로 시작되는 RGB 코드를 사용할 수 있습니다. 

아래는 자주 사용하는 색상표입니다.

문자열 약자
Blue b
Green g
Red r
White w
Yellow y
Black b
Cyan c
Magenta m

matplotlib Marker 종류

데이터의 위치를 나타내는 기호를 마커(Makter)라고 합니다.

마커의 종류는 아래와 같고, 색상과 마찬가지로 옵션으로 지정해줄 수 있습니다.

기호 의미
. Point marker
, Pixel marker
o Circle marker
v Triangle down marker
^ Triangle up marker
< Triangle left marker
> Triangle right marker
s Square marker
p Pentagon marker
* Star marker
h Hexagon marker
+ Plus marker
x X marker

matplotlib 선 종류

선 스타일에는 아래 표와 같이 있습니다. 

기호 의미
- 실선 스타일 - solid
-- 대시선 스타일 - dashed
-. 대시 점선 스타일 - dashdot
: 점선 스타일 - dotted

matplotlib 기타 스타일

위의 스타일 외에도 여러가지 스타일을 지정할 수 있습니다. 

문자열 약자 의미
color c 'r', 'g', 'b', 'w' ... 선 색상
linewidth lw 정수 선 굵기
linestlye ls '-', '--', '-.', ':' 선 스타일
marker m 'o', '^',  '<', ... 마커 종류
markersize ms 정수 마커크기
markeredgecolor mec 'r', 'g', 'b', 'w' ... 마커 선 색상
markeredgewidth mew 정수 마커 선 굵기
markerfacecolor mfc 'r', 'g', 'b', 'w' ... 마커 내부 색상

반응형
반응형

파이썬 데이터 분석 / Dataframe의 내용을 pyplot 모듈로 그래프 그리기

 

필요한 모듈 import하기

그래프를 그려줄 pyplot과 DataFrame을 만들기 위해 pandas 라이브러리를 import합니다.

 

리스트의 내용을 DataFrame으로 만들기

4 x 2 리스트를 만들고, 그 리스트를 DaataFame의 전달인자로 넣어줍니다. 

그 때 columns은 'x', 'y'로 지정하였습니다. 

이제 frame['x'], frame['y']에 접근이 가능해졌습니다. 

이 DataFrame의 'x' 데이터와 'y' 데이터를 가지고 그래프를 그려보도록 하겠습니다. 

 

그래프 그리기

matplotlib.pyplot에서 plot(x,y)를 사용하면 됩니다. 

x,y는 각각 X축과 Y축의 값이 됩니다. 

이 x, y에 각각 frame['x']와 frame['y']를 넣어주고, 'rs--' 라는 옵션을 지정해줍니다. 

그리고 plt.show()를 하면 아래와 같이 그래프를 출력해주는 것을 볼 수 있습니다. 

 

 

다음 포스팅에서는 이 그래프의 선종류, 선색상, 라벨 등등을 꾸며보도록 하겠습니다.

반응형
반응형

파이썬 데이터 분석 / Numpy 배열 전체, 행별, 열별 sum, average 함수 사용

 

Numpy 배열 생성

randn 함수를 사용하여, 배열을 생성해보겠습니다.

randn 함수는 표준 정규 분포 ( N(0,1) 즉, 평균이 0이고 표준편차가 1인 분포) 에서 추출한 샘플을 반환하며, 음수의 값이 나올 수 있습니다. 

 

arr = np.random.randn(3,5)

 

행을 기준으로 연산

2차원 배열에서 행을 기준으로 연산할 경우에는 axis = 0 를 연산함수의 인자로 넣어 계산을 합니다. 

 

열을 기준으로 연산

2차원 배열에서 열을 기준으로 연산할 경우에는 axis = 1 을 연산함수의 인자로 넣어 계산을 합니다.

 

예제를 통해 이해하기

import numpy as np

arr = np.random.randn(3,5)
print(arr)
print("max : ", np.max(arr))

#2차원 배열의 모든 값의 합을 구합니다.
print("sum : ", np.sum(arr))


#2차원 배열의 행을 기준으로 평균을 구합니다.
#5개의 열값이 출력됩니다.
print("average : ", np.average(arr, axis=0))

#2차원 배열의 열을 기준으로 힙을 구합니다.
#3개의 행값이 출력됩니다.
print("sum : ", np.sum(arr, axis=1))

반응형

+ Recent posts