プログラミング入門

Python初心者のためのデータ可視化入門|グラフ作成で上司に評価される資料術


「会議資料の説得力をもっと上げたい」「Excelグラフに限界を感じる」—そんな方へ。
本記事では、Pandas・Matplotlib・Seabornを使って、初心者でも短時間で見やすいグラフを作る方法を
実例コード付きで解説します。プレゼンやレポートで「伝わる」資料に仕上げましょう。

  • ✅ 対象データ:売上・アンケート結果・顧客属性
  • ✅ 作るグラフ:折れ線グラフ/ヒストグラム ほか
  • ✅ ねらい:上司に評価される“読みやすい”レイアウト&色分け

なぜ「Pythonで可視化」なのか

Excelは手軽ですが、データが増えると管理やデザインが大変。Pythonなら、

  • Pandasでデータ抽出・加工が楽(CSV/Excel/DBから読み込み)
  • Matplotlib / Seabornで美しく再現性のあるグラフを作成
  • コード化により同じ手順を何度でも即再現(月次更新が一瞬)

「データ準備 → 可視化 → 出力」を一気通貫で自動化でき、会議直前の差し替えにも強いのが魅力です。


データの前提:売上・アンケート・顧客属性

この記事では下記のシンプルな例を扱います。

  • 売上データ:月別の売上推移
  • アンケート:1〜5点の満足度スコア
  • 顧客属性:年代・地域など(割合の可視化に応用)

※ 実データでは前処理(欠損値・外れ値・異常値の確認)を先に行うと精度が上がります。


まずは基礎:環境準備と最短コード

必要ライブラリをインストール

# 必要であれば
pip install pandas matplotlib seaborn

売上の折れ線グラフ(Matplotlib)

import pandas as pd
import matplotlib.pyplot as plt

# サンプル売上データ
df = pd.DataFrame({
    "月": ["1月","2月","3月","4月","5月","6月"],
    "売上": [120, 150, 180, 130, 200, 240]  # 単位:万円
})

# 折れ線グラフ
plt.plot(df["月"], df["売上"], marker="o")   # ※色はデフォルトでOK(社内規定色があれば指定)
plt.title("月別売上推移")
plt.xlabel("月")
plt.ylabel("売上(万円)")
plt.tight_layout()
plt.savefig("sales_line.png", dpi=150)
plt.show()
ポイント:折れ線は「推移」を語るのに強い。節目(キャンペーン・改定)に縦線や注釈を入れると、より“意思決定に効く”図に。

アンケートのヒストグラム(Seaborn)

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(0)
survey = np.random.randint(1, 6, 300)  # 1〜5点のダミーデータ

sns.histplot(survey, bins=[1,2,3,4,5,6], discrete=True)
plt.title("顧客満足度スコア分布(1〜5)")
plt.xlabel("スコア")
plt.ylabel("人数")
plt.tight_layout()
plt.savefig("survey_hist.png", dpi=150)
plt.show()
ポイント:ヒストグラムは「ばらつき」を見せるのに最適。平均/中央値を補助線で示すと議論がスムーズに。

見やすいレイアウト&色分けのコツ(初心者向け)

  • 1スライド=1メッセージ:伝えたい主語を明確に(例:「売上は右肩上がり」)
  • 色は役割ごとに固定:売上=青、満足度=オレンジ、警告=赤 など
  • ラベルと単位を必ず入れる:軸・凡例・単位(円/件/%)
  • 読み順を意識:タイトル → グラフ → 注釈(結論)
  • フォントサイズ:会議室の後方でも読める大きさに

応用:顧客属性の割合を可視化(棒グラフ)

import pandas as pd
import matplotlib.pyplot as plt

df_attr = pd.DataFrame({
    "年代": ["10代","20代","30代","40代","50代以上"],
    "割合": [5, 25, 35, 22, 13]  # 単位:%
})

plt.bar(df_attr["年代"], df_attr["割合"])
plt.title("顧客年代構成比")
plt.xlabel("年代")
plt.ylabel("割合(%)")
# %表示の注釈(バー上)
for x, y in zip(df_attr["年代"], df_attr["割合"]):
    plt.text(x, y + 1, f"{y}%", ha="center")
plt.ylim(0, max(df_attr["割合"]) + 10)
plt.tight_layout()
plt.savefig("customer_age_bar.png", dpi=150)
plt.show()

社内で配色ガイドラインがある場合は色を指定。なければデフォルトで十分(見出しと注釈で“意図”を補強)。


よくあるつまずきと回避策

  • 日本語が豆腐(□)になる:OSに合った日本語フォントを指定(例:Noto Sans CJK)。
  • 数値の桁や単位が伝わりにくい:「千円」「万円」「%」を必ず明示。桁区切り表示も。
  • 色が多すぎる:意味がない色分けは避ける。2〜3色に抑える。
  • グラフが小さく読みにくい:図のサイズ(figsize)やフォントサイズを上げる。

成果:資料の説得力が上がり、評価も向上

実際にこれらのグラフを会議資料に盛り込むと、上司からは「数字の羅列より断然わかりやすい」「意思決定が早くなる」と好評でした。とくにヒストグラムで満足度の分布を見せた場面では、「改善すべき層」が明確になり、施策の議論が進みました。


まとめ:最小構成で“伝わる”資料を

  • Pythonなら数行のコードで再現性のあるグラフが作れる
  • Pandas+Matplotlib+Seabornが初心者の最短ルート
  • 色・ラベル・注釈を整えるだけで説得力が段違い

まずは折れ線グラフとヒストグラムから。月次の更新も楽になり、会議の“質”が変わります。




ABOUT ME
ショート
文系出身・一般&医療事務歴ありの会社員。 「パソコン苦手…」「残業が当たり前…」そんな日々を変えたくて、40代から独学でPythonやExcelの自動化に挑戦中。 プログラミングもブログも初心者レベルからの出発ですが、“早く帰りたい”一心で効率化を追求しています。 つまずいたリアルな失敗談や、「これならできた!」という事例を通して、パソコンに自信がない人の味方になれるブログを目指しています。