SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Python in Excel実務入門:Excelデータ分析の新パラダイム

Python in Excelのmatplotlib/seabornで、意思決定に役立つデータの可視化に挑戦

Python in Excel実務入門:Excelデータ分析の新パラダイム 第3回

matplotlibとseabornの使い分け

 matplotlibは軸・凡例・レイアウトなどを細かく制御でき、seabornはmatplotlibをベースに、統計データの可視化を少ないコードで行えるライブラリです。たとえばbarplotでは、列名を指定するだけで平均値などを集計して棒グラフにできます。

 以下では、商品カテゴリ別の平均売上を棒グラフにするといった同じタスクを、2本のコードで比較します。まずmatplotlibで書いてみます。

python
import matplotlib.pyplot as plt

df = xl("A1:E19", headers=True)
summary = df.groupby(
    "商品カテゴリ", sort=False)["売上"].mean() # (1)

fig, ax = plt.subplots()
ax.bar(summary.index, summary.values,
       color="steelblue", label="平均売上")
ax.set_xlabel("商品カテゴリ")
ax.set_ylabel("平均売上(千円)")
ax.set_title("商品カテゴリ別 平均売上")
ax.legend()
fig

 プレビューには、複合機1366.7・プリンター1300.0・シュレッダー663.3(千円)の棒が左からこの順に並び、軸ラベル・タイトル・凡例も表示されます。(1)groupbyは既定ではグループのキーをソートするため、sort=Falseを指定して元の表での出現順(複合機・プリンター・シュレッダー)を保っています。

matplotlibで描いた商品カテゴリ別平均売上の棒グラフ
matplotlibで描いた商品カテゴリ別平均売上の棒グラフ

 seabornで描くと、次のように短くなります。

python
import seaborn as sns

df = xl("A1:E19", headers=True)
sns.barplot(data=df, x="商品カテゴリ", y="売上")  # 平均売上の棒グラフを描画

 sns.barplotは、指定した列をもとに平均値を集計して棒グラフを描きます。そのため、groupbyによる集計を自分で書かなくても、列名を指定するだけで平均値を可視化できます。

 各棒に重なる縦線は、seabornが既定で表示するエラーバーで、平均値について推定した95%信頼区間を表します。これは6か月分のデータの「ばらつきそのもの」ではなく、標本から推定した平均値の不確かさを表すものなので、箱ひげ図とは意味が異なります。複合機の平均売上が最も高く、シュレッダーが最も低くなります。

seabornで描いた商品カテゴリ別平均売上の棒グラフとエラーバー
seabornで描いた商品カテゴリ別平均売上の棒グラフとエラーバー

 2本のコードの違いを観点ごとに比較すると、次のとおりです。

表:matplotlibとseabornの使い分け
観点 matplotlib seaborn
集計処理 groupby(...)["売上"].mean()を自分で書く sns.barplotが列名指定だけで平均値を自動計算
ばらつきの表示 平均値の棒のみ。必要なら自分で描き足す 95%信頼区間のエラーバーを既定で自動表示
向いている場面 軸・配色・注釈など細部を1つずつ制御したいとき 統計的な集計とプロットを素早く済ませたいとき

 このように、matplotlibは細部を自分で制御でき、seabornは列名指定だけで素早く形にできます。次節からは、主にseabornを用います。

次のページ
代表的な図の使い分け

この記事は参考になりましたか?

Python in Excel実務入門:Excelデータ分析の新パラダイム連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 西 潤史郎(ニシ ジュンシロウ)

< WINGSプロジェクト について>有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 山田...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/29807 2026/09/30 08:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー