python-matplotlib(棒グラフ)

23663 ワード

まず、matplotlibモジュールのbar関数を使用してストライプの描画を完了することができる、パケット(または離散)変数の可視化を表すために使用されるストライプ図から始めます.
一、簡単な垂直棒グラフ
  • ケース一:直轄市GDPレベル
                   、   、       , 2017     GDP   12406.8 、13908.57 、9386.87 、9143.64 。        ,                GDP   ?
  • In [1]:
    #       
    import matplotlib.pyplot as plt
    #     
    GDP = [12406.8,13908.57,9386.87,9143.64]
    
    #        
    plt.rcParams['font.sans-serif'] =['Microsoft YaHei']
    plt.rcParams['axes.unicode_minus'] = False
    
    #   
    plt.bar(range(4), GDP, align = 'center',color='steelblue', alpha = 0.8)
    #      
    plt.ylabel('GDP')
    #     
    plt.title('     GDP   ')
    #       
    plt.xticks(range(4),['   ','   ','   ','   '])
    #   Y      
    plt.ylim([5000,15000])
    
    #             
    for x,y in enumerate(GDP):
        plt.text(x,y+100,'%s' %round(y,1),ha='center')
        
    #     
    plt.show()
    

    コード解読
  • matplotlibは中国語のサポートがあまり友好的ではないため、事前に図面に対してフォントの設定を行う必要があります.すなわち、rcParamsでフォントを設定する必要があります.ここではフォントをマイクロソフトのブラックに設定します.また、座標軸が正常にマイナス記号を表示できないように設定する必要があります.
  • bar関数は、棒グラフのx軸、y軸値を指定し、x軸目盛りラベルを水平中央に設定し、棒グラフの充填色colorを鉄青色に設定し、透明度alphaを0.8に設定します.
  • y軸ラベル、タイトル、x軸目盛りラベル値を追加し、各柱体間の差異を棒グラフに表示させるために、y軸範囲を5000~15000に設定する.
  • ループにより、棒グラフの数値ラベルを追加する.

  • 二、簡単な水平棒グラフ
  • ケース2:同じ本の異なるプラットフォームの最低価格比較
                ,         ,  《python      》    、   、     、             39.5、39.9、45.4、38.9、33.34。      ,             ,            :
  • In [2]:
    #       
    import matplotlib.pyplot as plt
    #     
    price = [39.5,39.9,45.4,38.9,33.34]
    
    #        
    plt.rcParams['font.sans-serif'] =['Microsoft YaHei']
    plt.rcParams['axes.unicode_minus'] = False
    
    #   
    plt.barh(range(5), price, align = 'center',color='steelblue', alpha = 0.8)
    #      
    plt.xlabel('  ')
    #     
    plt.title('           ')
    #       
    plt.yticks(range(5),['   ','   ','     ','  ','  '])
    #   Y      
    plt.xlim([32,47])
    
    #             
    for x,y in enumerate(price):
        plt.text(y+0.1,x,'%s' %y,va='center')
    #         
    plt.show()
    

    コード解読
  • 水平棒グラフの描画は垂直棒グラフの描画手順と一致し、barh関数を呼び出して完了するだけである.棒グラフの数値ラベルの設定にはいくつかの違いがあり、vaパラメータを使用してラベルを垂直に中央に表示する必要があります.

  • 三、水平交差棒グラフ
                                 ,                               ,                    。
    
    
  • ケース3:胡潤富ランキング:億万資産超高純価値家庭数
  • 2016年と2017年の億万資産の超高純価値家庭数(top 5)を水平交錯ストライプ図で比較し、そのデータは以下の通りである.
    In [3]:
    #       
    import matplotlib.pyplot as plt
    import numpy as np
    #     
    Y2016 = [15600,12700,11300,4270,3620]
    Y2017 = [17400,14800,12000,5200,4020]
    labels = ['  ','  ','  ','  ','  ']
    bar_width = 0.35
    
    #        
    plt.rcParams['font.sans-serif'] =['Microsoft YaHei']
    plt.rcParams['axes.unicode_minus'] = False
    
    #   
    plt.bar(np.arange(5), Y2016, label = '2016', color = 'steelblue', alpha = 0.8, width = bar_width)
    plt.bar(np.arange(5)+bar_width, Y2017, label = '2017', color = 'indianred', alpha = 0.8, width = bar_width)
    #      
    plt.xlabel('Top5  ')
    plt.ylabel('    ')
    #     
    plt.title('       Top5    ')
    #       
    plt.xticks(np.arange(5)+bar_width,labels)
    #   Y      
    plt.ylim([2500, 19000])
    
    #             
    for x2016,y2016 in enumerate(Y2016):
        plt.text(x2016, y2016+100, '%s' %y2016)
    
    for x2017,y2017 in enumerate(Y2017):
        plt.text(x2017+bar_width, y2017+100, '%s' %y2017)
    #     
    plt.legend()
    #     
    plt.show()
    

    コード解読
  • 水平に交差する棒グラフを描く思想は簡単で、最初の棒グラフを描いた上で、左に一定の距離を移動して、2番目の棒グラフを描くので、コードの中で2つのbar関数が現れます.
  • 例の描画にはbar関数にlabelパラメータを追加する必要がある.colorパラメータとalphaパラメータは、それぞれ棒グラフの塗りつぶし色と透明度を表します.
  • 棒図に数値ラベルを追加し、同様に2回のforサイクルを用いて実現する必要がある.