[Pandas] 4. Dataframe으로 그래프 그리기 (재료역학 문제 활용)
공부/코딩

[Pandas] 4. Dataframe으로 그래프 그리기 (재료역학 문제 활용)

 2학년 과목인 고체역학을 재수강 중인데, 마침 데이터로 그래프 그리는 문제가 나왔습니다. 파이썬을 활용해서 그려봅시다.

 

1. 엑셀에 데이터 입력 후 불러오기


 문제의 데이터입니다. 이걸 토대로 물질이 Brittle 한지 Ductile 한지 판별하랍니다. 주피터로 직접 입력하면 머리 아프니까, 엑셀로 작성한 다음에 불러옵시다.

 

 저는 Stress-strain.xlsx 라고 저장했습니다.

import pandas as pd

df=pd.read_excel('Stress-strain.xlsx')
df

잘 나옵니다. 사진이 길어서 아래는 생략했습니다.

 

2. plot() 을 이용해 그래프 그리기


 

df.plot()

결과값

점과 점 사이는 직선으로 이은 듯 합니다. y축은 잘 나왔는데 x축이 인덱스로 보입니다. x축을 strain으로 바꿔줍시다.

그리고 그래프를 조금 꾸며봅시다. 사용할만한 매개변수는 다음과 같습니다. 

  • x ,y : x축 데이터, y축 데이터 설정 (예: x= 'Strain')
  • title : 그래프 제목
  • xlabel, yabel : x축, y축 이름
  • kind : 그래프 종류 ('line', 'bar', 'barh', 'box', 'pie' 등)

그래프 그리는데엔 Pandas 보다 matplotlib 같은 라이브러리륻 더 많이 사용하기 때문에, 여기선 간단한 것들만 적었습니다.

 

import numpy as np

%matplotlib inline
graph = df.plot(x='Strain',title = 'Ex.1.5', xlabel='strain', ylabel='stress')
graph.set_yticks(np.arange(0,80,8))

 Numpy 를 활용해서 y축의 간격을 조절했습니다.

 

 어쨌거나 이 물질은 Yielding 이나 Strain hardening 구간이 나타나지 않고 Elastic Region 에서 파단이 일어나는거 보니 Brittle 한 물질로 보입니다. (사실 그래프 보기엔 첫번째가 더 좋습니다. 역시 자동이 최고야.) 이런 경우에는 0.2% 오프셋으로 Yield Stress 를 판단하는데, 수식으로 그래프를 그릴 수 있는지 다음 포스팅에서 찾아보겠습니다.

 

 0번째 데이터와 1번째 데이터를 활용해 탄성계수를 구해보면 2.3GPa 정도가 나옵니다.

 

이 그래프 위에 데이터 값도 적으면 좋을 것 같은데, 이것도 다음 포스팅해서 시도하겠습니다.


 요즘 매일매일이 챌린지입니다. 화이팅 화이팅