[私もコードします]データ分析と可視化-プロジェクト2

34010 ワード

2.出生児数及び合計出生率
  • 合計出生率
    データリンク
  •  import pandas as pd
     
     df = pd.read_excel('stat_142801.xls', skiprows=2, nrows=2, index_col = 0) 
    df
    df.loc['출생아 수']
    
    >>> Error
    チェック
  • インデックス値
  • df.index
    
    >>> Index(['출생아 수', '합계 출산율'], dtype='object')
    
    df.index.values
    
    >>> array(['출생아\xa0수', '합계\xa0출산율'], dtype=object)
    
    df.rename(index={'출생아\xa0수':'출생아 수', '합계\xa0출산율':'합계 출산율'}, inplace=True)
    
    df.index.values
    
    >>> array(['출생아 수', '합계 출산율'], dtype=object)
    
    df.loc['출생아 수']
    df.iloc[0]
    df.iloc[1]
    df.T # 로우와 컬럼을 바꿔서 쓸수 있다.
    df = df.T
    df
    import pandas as pd
    import matplotlib.pyplot as plt
    import matplotlib
    matplotlib.rcParams['font.family'] = 'Malgun Gothic' # Windows
    # matplotlib.rcParams['font.family'] = 'AppleGothic' # Mac
    matplotlib.rcParams['font.size'] = 15
    matplotlib.rcParams['axes.unicode_minus'] = False
    
    plt.plot(df.index, df['출생아 수'])
    plt.plot(df.index, df['합계 출산율'])
    fig, ax1 = plt.subplots(figsize =(10, 7))
    ax1.plot(df.index, df['출생아 수'], color = '#ff812d')
    
    ax2 = ax1.twinx() #x축을 공유하는 쌍둥이 axis
    ax2.plot(df.index, df['합계 출산율'], color = '#ffd100')
    fig, ax1 = plt.subplots(figsize =(13, 5))
    ax1.set_ylabel('출생아 수 (천 명)')
    ax1.bar(df.index, df['출생아 수'], color = '#ff812d')
    ax1.set_ylim(250, 700)
    ax1.set_yticks([300, 400, 500, 600])
    
    ax2 = ax1.twinx() #x축을 공유하는 쌍둥이 axis
    ax2.set_ylabel('합계 출산율 (가임여성 1명당 명)')
    ax2.plot(df.index, df['합계 출산율'], color = '#ffd100')
    ax2.set_ylim( 0, 1.5)
    ax2.set_yticks([0, 1])
    fig, ax1 = plt.subplots(figsize =(13, 5))
    ax1.set_ylabel('출생아 수 (천 명)')
    ax1.bar(df.index, df['출생아 수'], color = '#ff812d')
    ax1.set_ylim(250, 700)
    ax1.set_yticks([300, 400, 500, 600])
    for idx, val in enumerate(df['출생아 수']):
        ax1.text(idx, val+12, val, ha='center')
    
    ax2 = ax1.twinx() #x축을 공유하는 쌍둥이 axis
    ax2.set_ylabel('합계 출산율 (가임여성 1명당 명)')
    ax2.plot(df.index, df['합계 출산율'], color = '#ffd100')
    ax2.set_ylim( 0, 1.5)
    ax2.set_yticks([0, 1])
    
    
    plt.show()
    fig, ax1 = plt.subplots(figsize =(13, 5))
    ax1.set_ylabel('출생아 수 (천 명)')
    ax1.bar(df.index, df['출생아 수'], color = '#ff812d')
    ax1.set_ylim(250, 700)
    ax1.set_yticks([300, 400, 500, 600])
    for idx, val in enumerate(df['출생아 수']):
        ax1.text(idx, val+12, val, ha='center')
    
    ax2 = ax1.twinx() #x축을 공유하는 쌍둥이 axis
    ax2.set_ylabel('합계 출산율 (가임여성 1명당 명)')
    ax2.plot(df.index, df['합계 출산율'], color = '#ffd100', marker='o', markersize=15, linewidth=5, mec = 'w', mew=3)
    ax2.set_ylim( 0, 1.5)
    ax2.set_yticks([0, 1])
    
    plt.show()
    fig, ax1 = plt.subplots(figsize =(13, 5))
    ax1.set_ylabel('출생아 수 (천 명)')
    ax1.bar(df.index, df['출생아 수'], color = '#ff812d')
    ax1.set_ylim(250, 700)
    ax1.set_yticks([300, 400, 500, 600])
    for idx, val in enumerate(df['출생아 수']):
        ax1.text(idx, val+12, val, ha='center')
    
    ax2 = ax1.twinx() #x축을 공유하는 쌍둥이 axis
    ax2.set_ylabel('합계 출산율 (가임여성 1명당 명)')
    ax2.plot(df.index, df['합계 출산율'], color = '#ffd100', marker='o', markersize=15, linewidth=5, mec = 'w', mew=3)
    ax2.set_ylim( 0, 1.5)
    ax2.set_yticks([0, 1])
    for idx, val in enumerate(df['합계 출산율']):
        ax2.text(idx, val+0.08, val, ha='center')
    
    
    plt.show()
    fig, ax1 = plt.subplots(figsize =(13, 5))
    fig.suptitle('출생아수 및 합계 출산율')
    ax1.set_ylabel('출생아 수 (천 명)')
    ax1.bar(df.index, df['출생아 수'], color = '#ff812d')
    ax1.set_ylim(250, 700)
    ax1.set_yticks([300, 400, 500, 600])
    for idx, val in enumerate(df['출생아 수']):
        ax1.text(idx, val+12, val, ha='center')
    
    ax2 = ax1.twinx() #x축을 공유하는 쌍둥이 axis
    ax2.set_ylabel('합계 출산율 (가임여성 1명당 명)')
    ax2.plot(df.index, df['합계 출산율'], color = '#ffd100', marker='o', markersize=15, linewidth=5, mec = 'w', mew=3)
    ax2.set_ylim( 0, 1.5)
    ax2.set_yticks([0, 1])
    for idx, val in enumerate(df['합계 출산율']):
        ax2.text(idx, val+0.08, val, ha='center')
    
    plt.show()

    -実際のホーム図面と比較