#!/usr/bin/env python
# coding: utf-8

# In[2]:


import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Malgun Gothic'

import warnings
warnings.simplefilter("ignore")

fdir = 'C:/Users/windy/Desktop/수업관련/비교과/'
bybill = pd.read_excel(io=fdir+'by_bills_2022.xlsx', index_col=None,skiprows=2)
byspec = pd.read_excel(io=fdir+'by_specialties_2022.xlsx', index_col=None, skiprows=2)

print(bybill.columns)
print(byspec.columns)


# In[3]:


def read_data(inp, name_col, target_row):
    if len(inp.columns) == 6:       
        tmp = inp[inp[name_col]==target_row]
        tmp = tmp.values.tolist()
        return np.array(tmp[0][1:])
    else:
        tmp = inp[inp[name_col]==target_row]
        tmp = tmp.values.tolist()
        return np.array(tmp[0][3:])


# In[4]:


time = byspec.columns.tolist()[1:]
plt.figure(figsize=(12,9))
plt.xlabel('연도')
plt.ylabel('2018년 대비 환자 수')
plt.fill_between([1,3], [2,2], alpha=0.5, color='lightgray')
plt.ylim(0.1,1.7)

data_list = byspec["구분"]
for i in range(len(data_list)):
    tmp = read_data(byspec, "구분", data_list[i])
    plt.plot(time, tmp/tmp[0], label=data_list[i])

plt.legend(loc='upper left')


# In[5]:


total = read_data(byspec, "구분", "전체")
mental = read_data(byspec, "구분", "정신건강의학과")
intern = read_data(byspec, "구분", "내과")
otorhin = read_data(byspec, "구분", "이비인후과")
plastic = read_data(byspec, "구분", "성형외과")
tuber = read_data(byspec, "구분", "결핵과")
diag = read_data(byspec, "구분", "진단검사의학과")


# In[6]:


plt.figure(figsize=(12,6))
plt.plot(time, total/total[0], label='전체 환자 수')
plt.plot(time, mental/mental[0], label='정신건강의학과')
plt.plot(time, intern/intern[0], label='내과')
plt.plot(time, otorhin/otorhin[0], label='이비인후과')
plt.plot(time, plastic/plastic[0], label='성형외과')
plt.plot(time, tuber/tuber[0], label='결핵과')
plt.plot(time, diag/diag[0], label='진단검사의학과')

plt.xlabel('연도')
plt.ylabel('2018년 대비 환자 수')
plt.fill_between([1,3], [2,2], alpha=0.5, color='lightgray')
plt.ylim(0.1,1.7)
plt.legend()
plt.show()


# In[7]:


pay = read_data(bybill, "구분", "진료비")
days = read_data(bybill, "구분", "입(내)원일수")

data = {"total":total,"mental":mental,"intern":intern,"otorhin":otorhin,
        "plastic":plastic,"tuber":tuber,"diag":diag,"cost":pay, "days":days}
df = pd.DataFrame(data)
print (df)


cor = df.corr(method='pearson')

from matplotlib import cm

f = plt.figure(figsize=(19, 15))
plt.matshow(cor, fignum=f.number, cmap='RdYlBu_r', interpolation='none', vmin=0, vmax=1)
plt.xticks(range(df.select_dtypes(['number']).shape[1]), df.select_dtypes(['number']).columns, fontsize=14, rotation=45)
plt.yticks(range(df.select_dtypes(['number']).shape[1]), df.select_dtypes(['number']).columns, fontsize=14)
cb = plt.colorbar()
cb.ax.tick_params(labelsize=14)
plt.title('Correlation Matrix', fontsize=16);
plt.show()


# In[ ]:




