示例#1
0
def changeParameter(n_clicks, input1, input2, input3, input4):
    global tuningSetAgeRate, tuningSetRetireRate, dfResultData, dfTotalDoctor, dfNewDoctor, dfDeadDoctor, dfRetireDoctor, dfThousandPerDoctor

    for i in range(22):
        npBasicPopulation[i] = np.array([input1, input2, input3, input4])

    dfResultData = idoct.makeResultData(
        npBasicPopulation, [tuningSetAgeRate, tuningSetRetireRate])

    dfTotalDoctor = [
        dfResultData[0], dfResultData[1], dfResultData[0] + dfResultData[1]
    ]  # 의사수
    dfNewDoctor = [
        dfResultData[2], dfResultData[3], dfResultData[2] + dfResultData[3]
    ]  # 신규의사수
    dfDeadDoctor = [
        dfResultData[4], dfResultData[5], dfResultData[4] + dfResultData[5]
    ]  # 사망자수
    dfRetireDoctor = [
        dfResultData[6], dfResultData[7], dfResultData[6] + dfResultData[7]
    ]  # 은퇴자수
    dfThousandPerDoctor = idoct.makeThousandPerDoctor(
        dfTotalDoctor, idoct.npPopulation)  # 1000명당 의사수

    return u'''
        의사고시 합격자 중 의대졸업인원 {}명,
        의전원졸업 {}명,
        의대졸업인원 남성비율 {}%,
        의대졸업인원 여성비율 {}%
    '''.format(input1, input2, input3 * 100, input4 * 100)
示例#2
0
def changeParameter(n_clicks, input1, input2, input3, input4):
    global tuningSetAgeRate, tuningSetRetireRate, dfResultData, dfTotalDoctor, dfNewDoctor, dfDeadDoctor, dfRetireDoctor, dfThousandPerDoctor, dfPopulation, npVisitNumYear, npVisitNumYearOECD
    valueSet = [input1,input2,input3,input4]
    for i in range(21):
        npBasicPopulation[i] = np.array([input1,input2,input3,input4])

    dfResultData = idoct.makeResultData(npBasicPopulation,[tuningSetAgeRate,tuningSetRetireRate])

    dfTotalDoctor = [dfResultData[0],dfResultData[1],dfResultData[0]+dfResultData[1]] # 의사수
    dfNewDoctor = [dfResultData[2],dfResultData[3],dfResultData[2]+dfResultData[3]]    # 신규의사수
    dfDeadDoctor = [dfResultData[4],dfResultData[5],dfResultData[4]+dfResultData[5]]   # 사망자수
    dfRetireDoctor = [dfResultData[6],dfResultData[7],dfResultData[6]+dfResultData[7]] # 은퇴자수
    dfThousandPerDoctor = idoct.makeThousandPerDoctor(dfTotalDoctor, idoct.npPopulation) # 1000명당 의사수
    npDoctorNum = np.around(np.array(dfThousandPerDoctor.iloc[60:]).T[0],2)
    npVisitDay = np.array(idoct.dfVisitDays['국내내원일수'])
    npVisitNumYear = (npVisitDay*1000)/npDoctorNum # 국내의사 1인당 외래진료수
    npVisitNumYearOECD = np.array(idoct.dfVisitDays['OECD1인당연간외래진료수'])
    dfVisitNumYear = pd.DataFrame(np.array([npVisitNumYear,npVisitNumYearOECD]).T)
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

npBasicPopulation = np.zeros([22,4])
for i in range(22):
        npBasicPopulation[i] = np.array([3000,50,0.6,0.6])

tuningSetAgeRate = [[0.8, 0.1, 0.1, 0.25, 0.1, 0.15],[26,26,28,28,27,27],[40, 40, 40, 40, 40, 40]]
tuningSetRetireRate = [[1.1, 1.05],[30, 30],[1.0, 1.0]]

dfResultData = idoct.makeResultData(npBasicPopulation,[tuningSetAgeRate,tuningSetRetireRate])

dfTotalDoctor = [dfResultData[0],dfResultData[1],dfResultData[0]+dfResultData[1]] # 의사수
dfNewDoctor = [dfResultData[2],dfResultData[3],dfResultData[2]+dfResultData[3]]    # 신규의사수
dfDeadDoctor = [dfResultData[4],dfResultData[5],dfResultData[4]+dfResultData[5]]   # 사망자수
dfRetireDoctor = [dfResultData[6],dfResultData[7],dfResultData[6]+dfResultData[7]] # 은퇴자수
dfThousandPerDoctor = idoct.makeThousandPerDoctor(dfTotalDoctor, idoct.npPopulation) # 1000명당 의사수


BS = "https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
app = dash.Dash(__name__, external_stylesheets=[BS])


colors = {
    'background': '#F2F2F2',
    'text': '#151515'
}

app.layout = html.Div(style={'backgroundColor': colors['background']}, children=[
    dcc.Input(id='input-1-state', type='number', value=3000, step=100),
    dcc.Input(id='input-2-state', type='number', value=50, step=50),
    dcc.Input(id='input-3-state', type='number', value=0.6, step=0.1, max=1),