오늘 코딩 목표
파이썬 시각화 라이브러리 중에 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
'코딩' 카테고리의 다른 글
엑셀 파일 csv로 변환 코드 (tsv, sto, xlsx ↔ csv) (0) | 2021.06.17 |
---|---|
데이터 마이닝 :: 케이무크 무료 대학 강의 (0) | 2021.06.12 |
엑셀 파일 CSV 변환, 파이썬으로 파일 불러오기, 데이터 추출 3가지 방법, 그래프 그리기 (pd.read_csv VS np.loadtxt) (1) | 2021.05.22 |
파이썬 그래프 범례 내 맘대로 수정하는 법 (matplotlib) (0) | 2020.12.18 |
파이썬 그래프에 한글 제목과 범례 사용하는 법 (0) | 2020.12.18 |
댓글