Pandasで棒グラフを作る方法について、できるだけ丁寧に解説します。
plot.bar()
はPandasのDataFrameやSeriesオブジェクトに備わっている可視化メソッドで、内部的にはMatplotlibを使っています。
基本から応用まで段階的に整理します。
目次
基本の使い方
まずはシンプルにSeriesやDataFrameから棒グラフを作る例です。
import pandas as pd
import matplotlib.pyplot as plt
# サンプルデータ
data = {'商品': ['A', 'B', 'C', 'D'],
'売上': [100, 150, 80, 200]}
df = pd.DataFrame(data)
# インデックスに商品名を設定
df = df.set_index('商品')
# 縦棒グラフを描画
df['売上'].plot.bar()
plt.show()
ポイント
df['売上'].plot.bar()
で縦棒グラフが作成されます。- インデックスが自動的にX軸ラベルになります。
- Matplotlibを使うため、
plt.show()
で表示する必要があります。
横棒グラフ
縦ではなく横にしたい場合は .barh()
を使います。
import pandas as pd
import matplotlib.pyplot as plt
data = {'商品': ['A', 'B', 'C', 'D'],
'売上': [100, 150, 80, 200]}
df = pd.DataFrame(data).set_index('商品')
# 横棒グラフ
df['売上'].plot.barh(color='skyblue')
plt.show()
ポイント
bar()
→ 縦棒グラフbarh()
→ 横棒グラフcolor
で色を変更可能
複数列の棒グラフ
DataFrameの複数列をまとめて可視化することもできます。
import pandas as pd
import matplotlib.pyplot as plt
data = {
'2024年': [100, 150, 80, 200],
'2025年': [120, 160, 90, 220]
}
df = pd.DataFrame(data, index=['A', 'B', 'C', 'D'])
# 複数列をまとめて表示
df.plot.bar()
plt.show()
ポイント
- 棒が「グループ化」されて表示されます。
- 比較をしたいときに便利です。
スタック棒グラフ(積み上げ)
複数列の値を積み上げて表示する場合は stacked=True
を指定します。
import pandas as pd
import matplotlib.pyplot as plt
data = {
'2024年': [100, 150, 80, 200],
'2025年': [120, 160, 90, 220]
}
df = pd.DataFrame(data, index=['A', 'B', 'C', 'D'])
# 積み上げ棒グラフ
df.plot.bar(stacked=True)
plt.show()
ポイント
- 各商品の合計値を視覚的に把握しやすい。
- 比率を見るなら積み上げの方が直感的。
オプションの活用
棒グラフの見やすさを調整するには、Matplotlibの引数を活用します。
import pandas as pd
import matplotlib.pyplot as plt
data = {
'2024年': [100, 150, 80, 200],
'2025年': [120, 160, 90, 220]
}
df = pd.DataFrame(data, index=['A', 'B', 'C', 'D'])
# カスタマイズ
ax = df.plot.bar(
figsize=(8, 6), # グラフサイズ
color=['skyblue', 'orange'], # 列ごとの色
alpha=0.8, # 透明度
width=0.7 # 棒の太さ
)
# タイトルとラベル
ax.set_title("商品別売上比較", fontsize=16)
ax.set_xlabel("商品", fontsize=12)
ax.set_ylabel("売上(万円)", fontsize=12)
# X軸ラベルを横向きに
plt.xticks(rotation=0)
plt.show()
Seriesとの組み合わせ
棒グラフと折れ線グラフを重ねるのも可能です。
import pandas as pd
import matplotlib.pyplot as plt
data = {
'2024年': [100, 150, 80, 200],
'2025年': [120, 160, 90, 220]
}
df = pd.DataFrame(data, index=['A', 'B', 'C', 'D'])
# 2024年は棒グラフ
ax = df['2024年'].plot.bar(color='skyblue', label='2024年')
# 2025年は折れ線グラフ
df['2025年'].plot(ax=ax, color='red', marker='o', label='2025年')
plt.legend()
plt.show()
ポイント
ax=ax
を指定すると、同じグラフ上に描画できます。- 棒+折れ線は売上や数値の推移を比較するときによく使われます。
実務でよくある応用例
- カテゴリ比較:商品、地域、担当者別などを棒グラフで比較。
- 年度比較:前年・今年の売上やデータを複数列で表現。
- 割合表示:積み上げ+正規化してシェアを可視化。
- ダッシュボード化:Jupyter Notebook上でインタラクティブに表示。
まとめ
plot.bar()
→ 縦棒グラフplot.barh()
→ 横棒グラフstacked=True
→ 積み上げ棒グラフ- Matplotlibの設定を組み合わせることで、タイトル・ラベル・色・サイズを自由に調整可能
以上、Pandasのplot.barで棒グラフを作成する方法についてでした。
最後までお読みいただき、ありがとうございました。