본문 바로가기
프로그램

[파있선] 문제 : 엑셀 데이터를 정렬해서 chart 그리기

by 오디세이99 2023. 7. 12.
728x90
반응형
1단계 : 1번값과 2번값의 오차율 구하기
2단계 : 1번값을 기준으로 전체 데이터를 오름차순으로 변경
3단계 : 2단계 전체를 엑셀속 그래프처럼 나타내기

 

 

(방법)

1단계 데이터만 있는 엑셀 파일

data02.xlsx
0.01MB

import matplotlib.pyplot as plt
import pandas as pd

file_name = 'data02.xlsx'
df = pd.read_excel(file_name)
df['오차율'] = (df['1번'] - df['2번']) * 100 / df['2번']     # 오차율(지금은 차 곗산. 공식 사용해 계산 가능)

df = df.sort_values(by='1번' ,ascending=True)               # 1번으로 정렬(오름차순)

idx = [i for i in range(len(df))]                           # 차트의 x축 만들기

%matplotlib inline
# %matplotlib qt5
plt.figure(figsize=(10, 6))

fig, ax1 = plt.subplots()                                    # 선 그래프
ax1.plot(idx, df['1번'], label='1번', color='red')
ax1.plot(idx, df['2번'], label='2번', color='violet')
ax1.set_ylim([0, 7])                                         # y축 범위

ax2 = ax1.twinx()                                            # Bar 그래프
ax2.bar(idx, df['오차율'] , label='오차율')
ax2.set_ylim([0, 100])                                       # y2축 범위

plt.show()

 

title 및 x, y1, y2 레이블 표시

import matplotlib.pyplot as plt
import pandas as pd

file_name = 'data02.xlsx'
df = pd.read_excel(file_name)
df['오차율'] = (df['1번'] - df['2번']) * 100 / df['2번']     # 오차율(지금은 차 곗산. 공식 사용해 계산 가능)

df = df.sort_values(by='1번' ,ascending=True)               # 1번으로 정렬(오름차순)

idx = [i for i in range(len(df))]                           # 차트의 x축 만들기

%matplotlib inline
# %matplotlib qt5
plt.figure(figsize=(10, 6))

fig, ax1 = plt.subplots()                                    # 선 그래프
ax1.plot(idx, df['1번'], label='1번', color='red')
ax1.plot(idx, df['2번'], label='2번', color='violet')
ax1.set_ylim([0, 7])                                         # y축 범위
ax1.set_xlabel('X')
ax1.set_ylabel('y1')

ax2 = ax1.twinx()                                            # Bar 그래프
ax2.bar(idx, df['오차율'] , label='오차율')
ax2.set_ylim([0, 100])                                       # y2축 범위
ax2.set_ylabel('y2')

ax1.set_title('Title')

plt.show()

728x90
반응형

댓글