SHOEISHA iD

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

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

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

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

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

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

 前回は、xl()で取り込んだDataFrameのクレンジング・groupby集計・merge結合までを確認しました。数値の一覧のままでは分布や相関、ばらつきは伝わりにくいため、本稿ではmatplotlibとseabornを使い分け、意思決定に効くグラフをセルの中に描く方法を解説します。セルの値やフィルターの変更にグラフが連動する点も、ぜひ体験してください。

Excelセル内へのグラフ出力の基本

 ここでは、xl(..., headers=True)で読み込んだDataFrameをグラフにする基本パターンと、matplotlibとseabornの役割分担を確認します。

 サンプルとして、事務機器メーカー営業部の月次実績データ(複合機・プリンター・シュレッダー、1月~6月)を使います。見出しを含む次の19行をシートの左上(A1:E19)に入力し、本稿全体で使い回してください。

表:月次実績データのサンプル(A1:E19)
月 商品カテゴリ 売上 広告費 問い合わせ件数
1月 複合機 980 120 42
2月 複合機 1050 130 46
3月 複合機 1880 320 88
4月 複合機 1650 285 76
5月 複合機 1520 260 70
6月 複合機 1120 145 50
1月 プリンター 1180 150 95
2月 プリンター 1240 165 102
3月 プリンター 1310 180 108
4月 プリンター 1290 175 105
5月 プリンター 1360 195 112
6月 プリンター 1420 205 118
1月 シュレッダー 620 70 55
2月 シュレッダー 650 75 58
3月 シュレッダー 610 68 54
4月 シュレッダー 680 82 62
5月 シュレッダー 700 88 65
6月 シュレッダー 720 92 67

 売上・広告費の単位は千円、問い合わせ件数は件です。

画像としての埋め込みの考え方

 Excelの標準グラフはセルとは別のグラフオブジェクトですが、Python in Excelでは、matplotlibで作成したFigureなどをセルの出力として表示できます。入力データが変わって再計算されると、Pythonコードも再実行され、グラフが更新されます。ここでは、xl()で表を読み込み、月ごとの売上合計を折れ線グラフにします。

 コードの確認や編集は、数式タブの[Python]グループにある[エディター]から行えます。

数式タブからPythonエディターを開く
数式タブからPythonエディターを開く

 まず、基本的なグラフ可視化コードを実行してみます。Pythonセルにコードを入力すると、Pythonエディターでコードを編集できます。エディターでは、コードと出力プレビューを確認できます。なお、グラフのタイトルや軸ラベルが長くて切れる場合は、最後のfigの前にfig.tight_layout()を加えると、レイアウトを自動的に調整できます。

python
import matplotlib.pyplot as plt

plt.rcParams["font.sans-serif"] = [  # (1)
    "Yu Gothic", "Meiryo", "MS Gothic",
     "Hiragino Sans", "sans-serif"
]
plt.rcParams["axes.unicode_minus"] = False

df = xl("A1:E19", headers=True)  # 表を読み込んで月ごとに集計
monthly = df.groupby("月")["売上"].sum()

fig, ax = plt.subplots()
ax.plot(monthly.index, monthly.values)  # 折れ線グラフを描画
fig  # (2)

 コードの最後のfig(2)がそのまま画像としてセルに返ります。先頭のplt.rcParams(1)は、x軸の「1月」などの日本語を表示できるよう、使用するフォントの候補を指定しています。指定したフォントは実行環境によって利用できるものが異なるため、このように複数の候補を並べています。プレビューには3カテゴリ合計の月次売上(千円)の折れ線が表示され、3月を頂点に山型になります。

Pythonエディターに折れ線グラフがセルに画像として出力された状態
Pythonエディターに折れ線グラフがセルに画像として出力された状態

次のページ
matplotlibと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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー