棒グラフは、ヒストグラムとも呼ばれ、長方形の長さを変数として使用する統計グラフです。長方形の長さは、それに対応する変数の値に比例します。
1. 縦棒グラフ
バーグラフを描画するには、pyplotでbar関数を使用します。関数の基本的な構文は次のとおりです。
bar(x, height, [width], **kwargs)
x | 配列、各バーの横軸 |
---|---|
height | numberまたは配列、バーの高さ |
[ width] | オプションのパラメーター、数値または配列、バーの幅、デフォルトは0.8 |
**kwargs | 可変長のキーワードパラメータ。辞書を使用して、棒グラフの他の属性を設定します |
**kwargsで設定されることが多いパラメータには、グラフィックラベルラベル、カラーラベルの色、不透明度アルファなどがあります。
男性と女性の大学生の飲料水の趣味に関する調査の結果が次のとおりであると仮定します。
男性 | 女性 | |
---|---|---|
炭酸飲料 | 6 | 9 |
緑茶 | 7 | 4 |
ミネラルウォーター | 6 | 4 |
その他 | 2 | 6 |
ジュース | 1 | 5 |
合計 | 22 | 28 |
男の子の飲料水の状況のヒストグラムを描きます。コードは次のとおりです。
import matplotlib.pyplot as plt
# これらの2行のコードは、plt中国語表示の問題を解決します
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']= False
waters =('炭酸飲料','緑茶','ミネラルウォーター','フルーツジュース','その他')
buy_number =[6,7,6,1,2]
plt.bar(waters, buy_number)
plt.title('飲料水を購入する男性の調査結果')
plt.show()
グラフィック:
2. 横棒グラフ
水平バーグラフを生成するには、barh関数を使用できます。barh関数の構文はbar関数と非常によく似ています。
bar(x, width, [height], **kwargs)
y | 配列、各バーの縦座標 |
---|---|
width | 数値または配列、バーの幅 |
[ height] | オプションのパラメーター、数値または配列、バーの高さ、デフォルトは0.8 |
**kwargs | 可変長のキーワードパラメータ。辞書を使用して、棒グラフの他の属性を設定します |
コード:
import matplotlib.pyplot as plt
# これらの2行のコードは、plt中国語表示の問題を解決します
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']= False
waters =('炭酸飲料','緑茶','ミネラルウォーター','フルーツジュース','その他')
buy_number =[6,7,6,1,2]
plt.barh(waters, buy_number) #横棒グラフ機能barh
plt.title('飲料水を購入する男性の調査結果')
plt.show()
3. サイドバイサイドバーチャート
男の子と女の子の調査のために2つの棒グラフを描きたい場合は、棒または棒関数を2回使用し、棒グラフの位置座標とそれに対応する棒または棒関数のスケールを調整して、2セットの棒を作成できます。グラフを並べて表示できます。
import matplotlib.pyplot as plt
import numpy as np
# これらの2行のコードは、plt中国語表示の問題を解決します
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']= False
# 統計を入力してください
waters =('炭酸飲料','緑茶','ミネラルウォーター','フルーツジュース','その他')
buy_number_male =[6,7,6,1,2]
buy_number_female =[9,4,4,5,6]
bar_width =0.3 #バー幅
index_male = np.arange(len(waters)) #男性棒グラフの横軸
index_female = index_male + bar_width #ガールバーグラフの横軸
# バー関数を2回使用して、2セットのバーグラフを描画します
plt.bar(index_male, height=buy_number_male, width=bar_width, color='b', label='男性')
plt.bar(index_female, height=buy_number_female, width=bar_width, color='g', label='女性')
plt.legend() #凡例を表示
plt.xticks(index_male + bar_width/2, waters) #横軸の目盛りに水中の飲料水、インデックスを表示させます_male + bar_width/2は横軸目盛の位置です
plt.ylabel('購入金額') #軸タイトルを調整する
plt.title('飲料水購入調査結果') #グラフィックタイトル
plt.show()
補足知識:Pythonバーグラフとヒストグラムは大きく異なります
違い:
まず、棒グラフは棒の長さを使用して各カテゴリの頻度を示し、その幅(カテゴリを示す)は固定されています。
ヒストグラムは面積を使用して各グループの頻度を示し、長方形の高さは各グループの頻度または頻度を示し、幅は各グループのグループ距離を示すため、高さと幅の両方に意味があります。
第2に、グループ化されたデータの連続性により、ヒストグラムの長方形は通常連続して配置されますが、棒グラフは別々に配置されます。
最後に、棒グラフは主にカテゴリデータの表示に使用され、ヒストグラムは主にデータタイプのデータの表示に使用されます。中学で学んだのは棒グラフです。明らかに、そのように感じましたか? (身長-年齢棒グラフ)各年齢に対応する頻度を座標に描きます。これは、データ分散を研究するときに私たちが最も好きなものです。それでも少し混乱する場合は、これら2つの画像を以下の同じデータと比較すると、理解できます。
データ:
年齢 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 合計 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
人数 | 3 | 6 | 7 | 11 | 13 | 18 | 15 | 11 | 7 | 5 | 4 | 100 |
バーチャート(各カテゴリの数に注意してください):
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
plt.rcParams['font.sans-serif']=['SimHei'] #通常は中国語を表示します
plt.rcParams['axes.unicode_minus']=False #負の符号の通常の表示
# d=pd.read_excel('E:\Python\projects\data\data100.xlsx',header=None)
# d=d[0]
# d=list(d)
ages=range(11)
count=[3,6,7,11,13,18,15,11,7,5,4]
plt.bar(ages,count, label='graph 1')
# params
# x:バーグラフx軸
# y:棒グラフの高さ
# width:棒グラフの幅はデフォルトで0です.8
# 下部:バーの下部のy座標値はデフォルトで0です
# align:center /エッジバーグラフがx軸座標を中心点として使用するか、x軸座標をエッジとして使用するか
plt.legend()
plt.xlabel('ages')
plt.ylabel('count')
plt.title(u'テスト例-棒グラフ')for i inrange(11):
plt.text(i,count[i]+0.1,"%s"%count[i],va='center')
plt.show()
ヒストグラム:
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import numpy as np
import pandas as pd
plt.rcParams['font.sans-serif']=['SimHei'] #通常は中国語を表示します
plt.rcParams['axes.unicode_minus']=False #負の符号の通常の表示
# d=np.random.normal(0,1,100)
d=pd.read_excel('E:\Python\projects\data\data100.xlsx',header=None)
d=d[0]
d=list(d)print(d)
n, bins, patches = plt.hist(x=d, bins=11, color='#0504aa',
alpha=0.8, rwidth=0.6) #alphaは、色の深さrwidthバーの幅、ビンバーの数です。
plt.grid(axis='y', alpha=0.4) #アルファグリッドの色の深さ
plt.xlabel('age')
plt.ylabel('count')
plt.title('100サンプルは以下のように配布されます')
plt.text(20,40, r'$\mu=0, sigma=1$')#正面は座標です、書きます
# plt.ylim(19) #yの範囲を設定します
plt.show()
2つのグラフを比較すると、棒グラフのカテゴリは正しいことがわかりますが、ヒストグラムでは間隔を使用して各棒を分割しています。違いはほぼ同じですが、データ調査への影響は大きい場合と小さい場合があります。つまり、違いを理解することで、不必要な間違いを避けることができます。
上記のPythonで棒グラフ(棒グラフ)を描画する例は、エディターが共有するすべてのコンテンツです。参考にしてください。
Recommended Posts