본문 바로가기

Software/Python

Python Pandas를 이용해 분석한 데이터를 그래프로 표현하기...

최근 Python에서 Pandas를 사용하는 기초스러운 이야기를 했는데요... 이번에도 계속 뭐 .. 언제나 그렇듯 기초지요^^ 사용환경은 IPython notebook으로 하구요^^

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pandas import DataFrame
%matplotlib inline

sampleTime = 0.0001
ScaleFactor = -1365.333333333

rawData = pd.read_table('testRawData.txt')

rawData = rawData.drop(rawData.columns[-1], axis = 1)

rawData.rename(columns = {'Index' : 'time'}, inplace = True)

rawData.rename(columns = {'rawDes' : 'Desired'}, inplace = True)
rawData.rename(columns = {'rawAct' : 'Actual'}, inplace = True)

rawData.time = rawData.time*sampleTime

rawData.Desired, rawData.Actual = rawData.Desired /ScaleFactor, rawData.Actual /ScaleFactor

일단 위 코드는 어떤 rawData를 읽어오는 겁니다. 뭐... DataFrame으로 선언된 데이터의 특정 컬럼(column)을 삭제(drop)하는 거라든지.. column의 이름을 변경(rename)한다든지 하는 명령을 사용했지만... 그냥 데이터를 읽는거죠^^ 이제 다음 코드를 보죠~~~^

plt.figure(figsize=(15,5))
plt.plot(rawData.time, rawData.Desired, rawData.time, rawData.Actual, 'r')
plt.title('Bad Desired comm5d in Finger', size=15)
plt.legend(['Desired', 'Actual'])
plt.xlabel('time (s)', size=15)
plt.ylabel('degree', size=15)
plt.axis([1.5, 3, -2, 25])
plt.grid(True)
plt.annotate('Bad Desired', xy=(1.88, 15), xytext=(2.3, 16), size=15, arrowprops=dict(facecolor='black', shrink=0.04))

이걸 이제 보도록 하겠습니다.^^

plt.figure(figsize=(15,5))

이건 inline으로 ipython notebook 화면에 포함시켜서 보여줄 그림의 크기를 정해주는 것입니다. MATLAB의 figure와 같아서 제일 먼저 나와야할 명령입니다.

plt.plot(rawData.time, rawData.Desired, rawData.time, rawData.Actual, 'r')

이건 그림을 그릴 데이터를 정해 준 것입니다. 처음 것은 파란색~~, 두번째는 'r' 옵션으로 빨간색으로 그리는거죠.

plt.title('Bad Desired comm5d in Finger', size=15)

ㅎ.. 이것은 그림의 타이틀을 잡아 주는 것입니다.

plt.legend(['Desired', 'Actual'])

이것은 범례(legend)를 정해주는 거죠....

plt.xlabel('time (s)', size=15)
plt.ylabel('degree', size=15)

x축과 y축의 라벨을 잡아 주는 것입니다.

plt.axis([1.5, 3, -2, 25])

그리고.. 전체를 다 보일 필요가 없을때... 특정 범위를 보여주고 싶을때... 이렇게 해서 범위를 잡아 주면 됩니다.^^

plt.grid(True)

그리고 grid를 켜(True) 주는 거구요^^

plt.annotate('Bad Desired', xy=(1.88, 15), xytext=(2.3, 16), size=15, arrowprops=dict(facecolor='black', shrink=0.04))

이건 annotate라고 해서 그래프 중간에 글자를 찍습니다. 화살표까지 같이 찍어주죠~~~ 이렇게 만들어진 그래프를 보시죠.

어떤가요... 괜찮죠???^^ 어디 보고서에 넣을때 괜찮겠죠~~~~^^

반응형