データ分析と可視化

12705 ワード

17.Matplotlibテスト
  • import&基本データ
  • import pandas as pd
    import matplotlib.pyplot as plt
    import matplotlib
    matplotlib.rcParams['font.family'] = 'Malgun Gothic' # Windows
    matplotlib.rcParams['font.size'] = 15
    matplotlib.rcParams['axes.unicode_minus'] = False
    
    data = {
        '영화' : ['명량', '극한직업', '신과함께-죄와 벌', '국제시장', '괴물', '도둑들', '7번방의 선물', '암살'],
        '개봉 연도' : [2014, 2019, 2017, 2014, 2006, 2012, 2013, 2015],
        '관객 수' : [1761, 1626, 1441, 1426, 1301, 1298, 1281, 1270], # (단위 : 만 명)
        '평점' : [8.88, 9.20, 8.73, 9.16, 8.62, 7.64, 8.83, 9.10]
    }
    df = pd.DataFrame(data)
    df

    1)映画データを用いてx軸が映画,y軸が採点された棒グラフを作成する
    plt.bar(df['영화'], df['평점'])
    plt.xticks(rotation=60)
    plt.show()

    2)前に作成した棒グラフの詳細を適用する
  • テーマ:国内8位映画採点情報
  • x軸ラベル:ムービー(90度回転)
  • y軸ラベル:スコア
  • plt.bar(df['영화'], df['평점'])
    plt.xticks(rotation=90)
    plt.title('국내 Top8 영화 평점 정보')
    plt.xlabel('영화')
    plt.ylabel('평점')
    
    plt.show()

    3)開封連動のスコア変化傾向を折れ線グラフで描く
  • 年度の平均データを取得するコードは次のとおりです.
  • df_group = df.groupby('개봉 연도').mean()
    df_group
    plt.plot(df_group.index, df_group['평점'])
    #plt.plot(df_group['평점'])

    4)前に作成した図面の詳細を適用する
    plt.plot(df_group['평점'], marker='o')
    plt.xticks([2005, 2010, 2015, 2020])
    plt.ylim(7, 10)

    5)提供された詳細を適用して円図を描き、9点より高い点数の映画の割合を決定する
  • label:9点以上/9点以下
  • %:小数点第1位
  • 図例:図右側表示
  • filt = df['평점'] >= 9
    len(df[filt]), len(df[~filt])
    
    >>> (3, 5)
    
    values = [len(df[filt]), len(df[~filt])]
    labels = ['9점 이상', '9점 미만']
    
    plt.pie(values, labels=labels, autopct = '%.1f%%')
    plt.legend(loc=(1, 0.3), title='구분')