본문 바로가기
카테고리 없음

파이썬으로 선 그래프 그리기 (모더나 2차 접종 후 체온변화 그래프)

by 날아라키위새 2021. 7. 17.
반응형

모더나 2차 백신을 맞고 아픈 와중에도 체온 변화를 기록했고 이를 파이썬으로 선 그래프를 그려보았다. (코로나 XX!) 대충 엑셀로 아래와 같은 시간과 체온을 기록했다. 그리고 csv로 저장했다. xlsx 같은 엑셀 파일도 파이썬으로 작업 가능하나 속도가 더 느리다.

 

    hours  temperature
0       0         36.5
1      10         37.5
2      11         37.8
3      14         38.3
4      19         38.9
5      21         38.5
6      25         38.0
7      27         38.0
8      33         38.0
9      34         37.4
10     36         37.1
11     37         37.0
12     39         36.6
13     45         36.5

 

위와 같은 csv파일이 있을때

아래와 같은 코드를 실행하면

 

# -*- coding: utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
import os


# import csv
folderPath = r'D:\posting' # 폴더 경로
attributeTable = 'ear_temp.csv' # 파일 이름
os.chdir(folderPath)
df = pd.read_csv(attributeTable)
df = df[['hours', 'temperature']]


# plot
plt.figure(figsize=(15, 8))
plt.rcParams.update({'font.size': 22})
ax = df.set_index('hours')['temperature'].plot(kind='line', marker='d')
ax.set_ylabel("Ear temperature (°C)")
ax.set_xlabel("Hours since Moderna second dose")
plt.show()

 

이런 라인 그래프가 나온다. 

 

파이썬으로 라인그래프 그리기

 

라인을 smooth 하게 하고 싶다면 아래의 코드를 실행해보자.

 

# -*- coding: utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
import os
import numpy as np
from scipy.interpolate import interp1d


# import csv
folderPath = r'D:\posting' # 폴더 경로
attributeTable = 'ear_temp.csv' # 파일 이름
os.chdir(folderPath)
df = pd.read_csv(attributeTable)
df = df[['hours', 'temperature']]


# plot2
x = df['hours']
y = df['temperature']
x_new = np.linspace(x.min(), x.max(),1000)
f = interp1d(x, y, kind='quadratic')
y_smooth=f(x_new)
plt.figure(figsize=(15, 8))
plt.rcParams.update({'font.size': 22})
plt.plot (x_new,y_smooth)
plt.scatter (x, y)

 

그럼 아래와 같은 그래프가 나온다. 좀 더 smooth 해졌다. 하지만 10시간까지 그리고 30시간 전후를 살펴보면 체온은 올라간 적 없지만 interp1d 기능에서 interpolate를 하는 과정에서 데이터 값의 왜곡이 생긴다. 조심히 사용하자.

 

파이썬으로 라인그래프 그리기

 

이렇게 겹쳐서 보면 interpolate로 인해 생긴 왜곡이 잘 보인다. 

 

파이썬으로 라인그래프 그리기

 

관련 글:

파이썬으로 박스플롯 (box plot - 상자그림) 그리기

파이썬으로 히스토그램 그리기

 

 

반응형

댓글