Matplotlib

【Python】matplotlibで棒グラフを作成(まとめ)

【Python】matplotlibで棒グラフを作成(まとめ)

 

本記事では、Pythonの『matplotlib』というライブラリを用いて、棒グラフを作成する方法を紹介します。

棒グラフのカスタマイズや複数のデータを同時に表示する方法も詳しく解説しました。

本記事を読めば、自由自在に棒グラフを作成できるようになります!!

*Pythonでグラフをプロットしたことがない方は先に下記を読んでから本記事を読んでください。

 

【15分】Pythonでグラフを作成する方法|matplotlibの基本をマスターPythonでグラフを書くことが難しそうだと思っていませんか?実は、Pythonを使用したグラフ作成は、excelより便利で簡単です。この記事では、初心者でもグラフが書けるように丁寧にpythonのグラフの作成法を説明します。...

 

 

 

Pythonで棒グラフを作成する準備

 

まずは、matplotlibで棒グラフを作成するために、以下のライブラリをインポートしてください。

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

 

今回、Pandasはサンプルデータを作成するために使用しました。

 

Pythonで棒グラフを作成する

 

Pythonで棒グラフを作成するためには、matplotlibのAxes.bar()メソッドを使用します。

引数を以下にまとめておきます。

引数 説明
width 棒の幅
bottom 棒の下端(積み上げ型の棒グラフを作成する場合に使用)
align

棒の横位置 : 以下の二つから選ぶ

  • 'center' : xの値に棒の中心がくる
  • 'edge' : xの値の棒の左端がくる
color(fc) 棒の色
alpha 棒の透明度 : 0~1で指定
hatch 棒の網掛け
linewidth(lw) 棒の縁の太さ
edgecolor(ec) 棒の縁の色

 

具体例を説明するために以下のデータを使用するします。

df = pd.DataFrame(data=np.random.randint(1, 10, (10, 3)), columns=['A', 'B', 'C'])
df.head()

 

sample dataサンプルデータの最初の5番目までを表示

 

 

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

 

まずは、基本的な棒グラフを作成してみましょう。

具体例を以下に示すので実行してみてください。

fig, ax = plt.subplots()
ax.bar(df.index, df['A'])
plt.show()

 

シンブルな棒グラフの例

 

棒グラフをカスタマイズ

 

次に最初に説明した引数を使って棒グラフをカスタマイズした例を紹介します

fig, ax = plt.subplots()
ax.bar(df.index, df['A'], width=0.5, fc='r', lw=2.0, ec='k', alpha=0.4)
plt.show()

 

棒グラフのカスタマイズ例

次に複数のデータを棒グラフを用いてプロットする方法を紹介します。

 

複数の棒グラフを並べて表示する方法

 

ここからは、複数の棒グラフを並べて表示する方法を紹介します。

 

複数の棒グラフを縦に並べる方法

 

複数の棒グラフを縦に並べるためには、width分だけx座標が増えるようにして作成します。

具体例を以下に示します。

fig, ax = plt.subplots()

cols = df.columns
width = 0.2

for i, col in enumerate(cols):
    ax.bar(df.index+width*(i-len(cols)/2), df.loc[:, col], label=col, width=width, align='edge')
ax.legend()
plt.show()

 

複数の棒グラフを縦に並べた例

 

複数の棒グラフを横に並べる方法

 

複数の棒グラフを横に並べるには、Axes.bar()の代わりにAxes.barh()を使用します。

基本的には引数は同じですが、先程のwidthheightに変える必要があります。

具体例を以下に示します。

fig, ax = plt.subplots()

cols = df.columns
height = 0.2

for i, col in enumerate(cols):
    ax.barh(df.index+height*(i-len(cols)/2), df.loc[:, col], label=col, height=height, align='edge')
ax.legend()
plt.show()

 

 

まとめ

 

本記事では、pythonのmatplotlibを利用して、棒グラフを作成する方法を紹介しました

本記事で紹介したコードを少し変化させれば、かなり柔軟性の高い棒グラフを作成できると思います。

本記事が、皆さなのデータ解析・研究に役立ったら幸いです…

 

Pythonにより可視化方法をより詳しく知りたい方は下記を参考にしてください。

 

Python Lab

 

ABOUT ME
努力のガリレオ
【運営者】 : 東大で理論物理を研究中(経歴)東京大学, TOEIC950点, NASA留学, カナダ滞在経験有り, 最優秀塾講師賞, オンライン英会話講師試験合格, ブログと独自コンテンツで収益6桁達成 【編集者】: イングリッシュアドバイザーとして勤務中(経歴)中学校教諭一種免許取得[英語],カナダ留学経験あり, TOEIC650点
Python学習を効率化させるサービス

 

Pythonを学習するのに効率的なサービスを紹介していきます。

まず最初におすすめするのは、Udemyです。

Udemyは、Pythonに特化した授業がたくさんあり、どの授業も良質です。

また、セール中は1500円定義で利用することができ、コスパも最強です。

下記の記事では、実際に私が15個以上の講義を受講して特におすすめだった講義を紹介しています。

 

【最新】UdemyでおすすめのPythonコース|東大生が厳選!10万を超える講座があるUdemyの中で、Pythonに関係する講座を厳選しました。また、本記事では、Udemyを使用しながらPythonをどのような順番で勉強するべきかを紹介しました。ぜひ参考にしてください。...

 

他のPythonに特化したオンライン・オフラインスクールも下記の記事でまとめています。

 

【最新】Pythonに強いプログラミングスクール7選|東大生が厳選Pythonの流行と共に、Pythonに強いプログラミングスクールが増えてきました。本記事では、特にPythonを効率的に学ぶことができるプログラミングスクールを経験をもとに厳選して、内容を詳しく解説しています。...

 

自分の学習スタイルに合わせて最適なものを選びましょう。