【Matplotlib】matplotlob.pyplot.barの引数一覧

Python

【はじめに】

今回は、Matplotlibのmatplotlib.pyplot.barメソッドの引数を一覧にしました。
また、実際に引数を使用して基本的な棒グラフの作成方法も紹介します。
データ可視化に興味がある方は、matplotlibを使いこなすための第一歩として参考になると思います。

本記事の内容

  • matplotlob.pyplot.barの引数一覧
  • 基本的な棒グラフを作成する
  • エラーバー(誤差範囲)を表示する
  • 積み上げ棒グラフを作成する

【matplotlob.pyplot.barの引数一覧】

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
引数 指定する値
x(必須) 各棒の X 軸上の数値(X軸に指定するデータ)
height (必須) 各棒の高さ(Y軸に指定するデータ)
width 棒の太さ (デフォルト値: 0.8)
bottom 各棒の下側の余白(主に積み上げ棒グラフを出力するために使います)
color 棒の色
edgecolor 棒の枠線の色
linewidth 棒の枠線の太さ
tick_label X 軸のラベル
xerr X 軸方向のエラーバー (誤差範囲) を出力する場合、数値または配列を指定
yerr Y 軸方向のエラーバー (誤差範囲) を出力する場合、数値または配列を指定
ecolor エラーバーの色を値または配列で指定
capsize エラーバーの傘のサイズを指定
align 棒の位置。’edge’ (垂直方向の場合:左端, 水平方向の場合:下端) または ‘center’ (中央)を指定。 (デフォルト値: ‘edge’ )
log True に設定すると、対数目盛で出力 (デフォルト値: False)
label 凡例に表示させる名前を指定

【基本的な棒グラフを作成する】

今回、「1920年から2015年までの全国の人口推移のデータ」を使用してグラフを作成してみます。

私のGitHubに「data.csv」としてアップロードしてあるので、下記コマンドでダウンロードすれば簡単に準備できます。

$ curl https://raw.githubusercontent.com/nakachan-ing/python-references/master/Pandas/data.csv -O
import pandas as pd

df = pd.read_csv('data.csv', encoding='shift-jis')
df.head()
都道府県コード都道府県名元号和暦(年)西暦(年)人口(総数)人口(男)人口(女)
01北海道大正91920235918312443221114861
12青森県大正91920756454381293375161
23岩手県大正91920845540421069424471
34宮城県大正91920961768485309476459
45秋田県大正91920898537453682444855

必須の引数のみでグラフを作成 | x, height

大正9年(1920年)の各都道府県の人口(総数)を棒グラフで比較してみます。

# 大正9年(1920年)の各都道府県の人口(総数)をdfとする
df = df[df['西暦(年)']==1920.0]
print(f'要素数:{len(df_1)}')
df.head()
要素数:47
都道府県コード都道府県名元号和暦(年)西暦(年)人口(総数)人口(男)人口(女)
01北海道大正91920235918312443221114861
12青森県大正91920756454381293375161
23岩手県大正91920845540421069424471
34宮城県大正91920961768485309476459
45秋田県大正91920898537453682444855
import matplotlib.pyplot as plt
import japanize_matplotlib
%matplotlib inline
# xに「都道府県」、height(Y軸)に「人口(総数)」を指定する
x = df['都道府県名']
y = df['人口(総数)']

# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(16,10))
# X軸のラベルを縦にします。
plt.xticks(rotation=90)


plt.bar(x, y)

Image from Gyazo

棒の幅を「1.0」にしてグラフを作成 | width


# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(16,10))
# X軸のラベルを縦にします。
plt.xticks(rotation=90)


plt.bar(x, y, width=1.0)

Image from Gyazo

ポイント

widthに1.0を指定すると棒と棒の隙間が表示されなくなります。

棒の色を赤色、枠線を非表示にしてグラフを作成 | color, linewidth

# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(16,10))
# X軸のラベルを縦にします。
plt.xticks(rotation=90)


plt.bar(x, y, color='red', linewidth=0)

Image from Gyazo

ポイント

  • colorはカラーコードで指定することもできます。
  • linewidthを0にすることで、グラフの枠線を非表示にすることが出来ます。

棒の色、枠線の色、太さを指定してグラフを作成 | color, edgecolor, linewidth

# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(16,10))
# X軸のラベルを縦にします。
plt.xticks(rotation=90)


plt.bar(x, y, color='#FF5B70', edgecolor='#CC4959', linewidth=4)

Image from Gyazo

タイトル、X 軸、Y 軸のラベルを指定してグラフを作成

# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(16,10))
# X軸のラベルを縦にします。
plt.xticks(rotation=90)

plt.title('大正9年(1920年)の各都道府県の人口(総数)比較')
plt.xlabel('都道府県名')
plt.ylabel('人口(総数)')
plt.bar(x, y)

Image from Gyazo

【エラーバー(誤差範囲)を表示する】

エラーバー(誤差範囲)とは一般に データのばらつき spread を示します。

また、不確かさの標準偏差、標準誤差、あるいは任意の信頼区間を表します。

Y軸のエラーバーを一律1000000にして黒色で表示する | yerr, evolor

# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(16,10))
# X軸のラベルを縦にします。
plt.xticks(rotation=90)

plt.title('大正9年(1920年)の各都道府県の人口(総数)比較')
plt.xlabel('都道府県名')
plt.ylabel('人口(総数)')
plt.bar(x, y, yerr=100000, ecolor="red")

Image from Gyazo

Y軸のエラーバーの傘のサイズを「5」にして表示する | yerr, capsize

# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(16,10))
# X軸のラベルを縦にします。
plt.xticks(rotation=90)

plt.title('大正9年(1920年)の各都道府県の人口(総数)比較')
plt.xlabel('都道府県名')
plt.ylabel('人口(総数)')
plt.bar(x, y, yerr=100000, ecolor="red", capsize=5)

Image from Gyazo

【積み上げ棒グラフを作成する】

大正9年(1920年)の各都道府県の人口(男)と人口(女)を積み上げ棒グラフで表示してみます。

# 大正9年(1920年)の各都道府県の人口(男)をdf_maleとする
df_male = df['人口(男)']
# 大正9年(1920年)の各都道府県の人口(女)をdf_femaleとする
df_female = df['人口(女)']

積み上げ棒グラフを作成する | bottom

# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(16,10))
# X軸のラベルを縦にします。
plt.xticks(rotation=90)

plt.title('大正9年(1920年)の各都道府県の積み上げグラフ')
plt.xlabel('都道府県名')
plt.ylabel('人口')
plt.bar(x, df_male, color='green')
plt.bar(x, df_female, bottom=df_male, color='orange')

Image from Gyazo

積み上げ棒グラフに凡例を表示して作成する

# グラフの大きさをplt.figureで指定しておきます。
plt.figure(figsize=(16,10))
# X軸のラベルを縦にします。
plt.xticks(rotation=90)

plt.title('大正9年(1920年)の各都道府県の積み上げグラフ')
plt.xlabel('都道府県名')
plt.ylabel('人口')
plt.bar(x, df_male, color='green', label='人口(男)')
plt.bar(x, df_female, bottom=df_male, color='orange', label='人口(女)')
plt.legend()

Image from Gyazo

【さいごに】

今回は、Matplotlibのmatplotlib.pyplot.barメソッドの引数を紹介しました。

ひとつのメソッドだけでこんなにもあるのかと思ってしまいますが、それだけMatplotlibが充実しているライブラリだということが分かりますね。

今後、他のメソッドについても紹介していきますので焦らずに着実に習得していきましょう。

また、使用したCSVファイルやJupyter NotebookはGitHubに公開しています。
Jupyter Notebookは下記コマンドでダウンロードできるので、自由に使って是非練習してみてください。

$ curl https://raw.githubusercontent.com/nakachan-ing/python-references/master/Matplotlib%26Seaborn/matplotlib.pyplot.barの引数.ipynb -O
python-references/Matplotlib&Seaborn at master · nakachan-ing/python-references
Contribute to nakachan-ing/python-references development by creating an account on GitHub.
matplotlib.pyplot.bar — Matplotlib 3.9.0 documentation

コメント

タイトルとURLをコピーしました