코딩

파이썬 엑셀 데이터로 라인 그래프 그리기 with 평균, 표준편차 (matplotlib)

Bella0204 2020. 12. 17.

 

 

오늘 코딩 목표

파이썬 시각화 라이브러리 중에 matplotlib를 이용하여 평균과 표준편차가 있는 라인 그래프를 그려보겠습니다.

그런 뒤 다양하게 그래프를 수정해 보겠습니다. 아래 왼쪽의 엑셀 그래프를 이용하여 아래 오른쪽과 같은 그래프를 만드는 것이 오늘의 목표입니다.

 

 

 

 

라이브러리 가져오기

 

import pandas as pd
import matplotlib.pyplot as plt   
%matplotlib inline  #주피터 노트북 사용시 필요한 코드

 

엑셀 CSV 파일 가져오기

 

pandas 를 이용하여 csv 파일을 가져옵니다. df라고 파일명을 정해줬고, csv 파일이 있는 경로를 복사해 와서 붙여 넣어 줍니다. 이때 복사해 온 주소는 백슬레쉬 상태이니 슬래쉬 상태로 바꿔줘야 하고요. 

skiprows = 숫자: 이것은 몇 줄을 빼고 가져올 것인지를 설정하는 것입니다.

예제에서 필요한 건 컬럼(column)의 제목과 값 들이므로 skiprows=1로 해주었습니다.

usecols은 가져오고 싶은 데이터의 컬럼입니다. 파이썬은 첫 번째가 0입니다. 

 

#제목과 데이터만 포함된 엑셀 자료 가져오기

df = pd.read_csv('C:/Users/Windows10/Desktop/MJ/data_for_lineplot.csv',
                skiprows=1, usecols=(0,13,14,15,17,18,19))

 

엑셀 파일 CSV로 변환 및 추출하는 법 👇👇

 

엑셀 파일 CSV 변환, 파이썬으로 파일 불러오기, 데이터 추출 3가지 방법, 그래프 그리기 (pd.read_csv

오늘 목표 엑셀로 작업한 파일을 CSV로 변환하고, 그것을 파이썬으로 불러오고, 불러온 파일에 있는 데이터를 추출하는 방법을 소개하겠습니다. Jupyter notebook에서 python3로 실행했습니다. 오늘 목

dotorimj2.tistory.com

 

 

가져온 데이터 확인하기

 

파일명. head()로 간단히 제목과 데이터를 확인할 수 있습니다.

df.head()

 

 

데이터 변수 지정하기

 

변수명 = 파일명. loc [ : , '칼럼명']을 이용하여 각각의 변수를 지정해 줍니다. 이렇게 코딩하면 불러온 엑셀 파일의 특정 칼럼(변수)의 값에 이름을 붙이고 가져올 수 있습니다.

 

x = 파일명.loc[ : ,'컬럼이름(시간)'] 시간에 대한 변수를 x라고 이름을 붙였고,

y = 파일명.loc[:,'컬럼이름(평균)'] 이렇게 변수 x, y, z에 대한 평균 각각에 y, y1, y2라고 이름을 붙여주었습니다.

yerr = 파일명.loc[:,'컬럼이름(표준편차)'] 이렇게 변수 x, y, z에 대한 표준편차 각각에 yerr, yerr1, yerr2라고 이름을 붙여주었습니다.

 

# 데이터 이름과 값 정하기
# 평균값 지정

x = df.loc[:,'time'] #x축을 시간으로 지정
y = df.loc[:,'x_mean'] #y축에 x,y,z라는 변수를 각각 지정
y1= df.loc[:,'y_mean']
y2= df.loc[:,'z_mean']

# 표준편차 지정           
yerr = df.loc[:,'x_sd']
yerr1 = df.loc[:,'y_sd']
yerr2 = df.loc[:,'z_sd']

 

 

 

 

평균과 표준편차를 나타낸 라인 그래프 그리기

 

우선 x축에 대한 변수 3개를 아래 코드를 이용하여 라인 그래프로 나타냅니다. 

c = '원하는 색'으로 라인 컬러를 바꿀 수 있고, label = '변수명'을 입력하면 나중에 범례로 표시할 때 사용할 수 있습니다. 아래 코드를 실행하면 아래와 같이 3개의 라인이 하나의 그래프에 표시됩니다. 

plt.plot(x,y,'-', c='black', label ='variable x')
plt.plot(x,y1,'-', c='blue', label ='variable y')
plt.plot(x,y2,'-', c='red', label ='variable z')

 

 

plt.fill_between (x, y+yerr, y-yerr) 이렇게 하면 오차 밴드를 그릴 수 있습니다. 

apha로 투명도를 조절하고,

edgecolor와 facecolor를 라인 그래프 선색과 같은 색으로 하여 오차 밴드처럼 표현할 수 있습니다. 

linewidth로 라인의 두께를 조절할 수 있습니다. 

 

# 변수 x

plt.plot(x,y,'k', c='red') # 변수 x 그리기
plt.fill_between(x,y-yerr,y+yerr,alpha=0.3,  
                 edgecolor='red', facecolor ='red',
                linewidth=0,antialiased=True) 

# 변수 y

plt.plot(x,y1,'k', c='blue') # 변수 y 그리기
plt.fill_between(x,y1-yerr1,y1+yerr1,alpha=0.3,
                linewidth=0,edgecolor='lightblue',
                 facecolor='blue',antialiased=True)

# 변수 z
plt.plot(x,y2,'k', c='green') # 변수 z 그리기
plt.fill_between(x,y2-yerr2,y2+yerr2,alpha=0.3, 
                 edgecolor='green', facecolor ='green',
                linewidth=0,antialiased=True)

 

 

위의 코드를 실행했더니 아래와 같은 그래프가 그려집니다. 차트 제목, 축 제목, 축 범위, 그래프의 여백을 없애고 범례를 표시해 보도록 하겠습니다. 

 

 

 

그래프 제목, 축 제목, 축 범위, 범례, 여백, 그리드 라인 수정하기

 

위에서 그린 그래프 코드에 아래의 코드를 추가하여 다양하게 그래프를 수정하고 꾸밀 수 있습니다.  

 

fig, ax = plt.subplots(figsize = (10,8)) #그래프 크기 조절
plt.title('Ground reaction force', fontsize=15) # 그래프 제목
plt.xlabel('time (ms)') # x 축 제목
plt.ylabel('ground reaction force') # y 축 제목



# 그래프 테두리 없애기
ax.spines['right'].set_visible(False) #오른쪽 테두리 없애기
ax.spines['top'].set_visible(False) # 위쪽 테두리 없애기

# x,y축 간격 표시 위치 
ax.xaxis.set_ticks_position('bottom') # x 축 위치를 아래로 지정
ax.yaxis.set_ticks_position('left') # y 축 위치를 오른쪽으로 지정
ax.set(xticks =[0,50,100,150,200,250],yticks =[-250, 0,500, 1000, 1500]) # 축 범위 지정하기


# 그래프 여백 없애기
ax.margins(x=0)

# 그래프 배경색과 투명도 조절
ax.patch.set_facecolor('lightgrey')
ax.patch.set_alpha(0.0)

# 그리드라인
ax.grid(False) #만들고 싶으면 False 로 바꾸기

# 범례 위치
ax.legend(loc='upper right', frameon=False, fontsize = 15)

# 축 제목 위치 바꾸기
ax.yaxis.set_label_position("left")

#그림저장하기
plt.savefig('test2.png')    

 

 

 

 

다음 포스팅에서는 한글로 그래프 제목을 나타내는 방법에 대해서 다루도록 하겠습니다. 끝.

 

 

 

 

함께 읽으면 좋은 글

 

 

파이썬 그래프에 한글 제목과 범례 사용하는 법

오늘 목표 지난 포스팅에서 연속적인 엑셀 데이터를 이용하여 평균과 표준편차를 나타내는 라인 그래프를 그렸었는데요. 오늘은 그 데이터와 그래프를 그대로 가져와서 한글로 차트 제목, 축

dotorimj2.tistory.com

 

 

파이썬 그래프 범례 내 맘대로 수정하는 법 (matplotlib)

오늘 목표 오늘은 파이썬 그래프 범례를 여러가지 스타일로 바꾸어 보는 방법을 알아 보겠습니다. 라이브러리 가져오기 import matplotlib from matplotlib import font_manager,rc #한글 폰트 입력을 위한 라이

dotorimj2.tistory.com

 

반응형

댓글