プログラミング入門

Python×matplotlib×seabornで作る有効なグラフ事例集【初心者向け】


「Excelのグラフだと伝わりきらない…」「もっと説得力のある資料にしたい」――そんなときに力を発揮するのが
Pythonのデータ可視化です。この記事では、初めてでも取り組みやすい
散布図を中心に、matplotlibseabornで“上司や顧客に刺さる”資料を作るコツをやさしく解説します。

  • ✅ 対象:Python超初心者(可視化は初めて)
  • ✅ 題材:成績取得資格数の関係(人事・教育・研修の文脈で活用しやすい)
  • ✅ ゴール:見やすく、意思決定に役立つ1枚のグラフを作れるようになる

なぜ「散布図」から始めるの?

散布図は「Aが増えるとBも増えるのか?」といった関係性(相関)を直感的に伝えるのが得意。
例えば「テストの成績取得資格数の関係」を散布図で示すと、
「高得点の人ほど資格も多いのか」や「例外的に資格が多い人は誰か」が一目でわかります。

Excelとの違い(初心者向けの実利)

  • 同じ書式でいつでも再作成(コードで再現 ⇒ 月次更新が一瞬)
  • 色・注釈・目盛りなどを細かく調整できる
  • データ読み込み〜前処理〜出力まで一気通貫

必要なツールと最短ステップ

  1. Pythonを用意(Anaconda もしくは python.org から)
  2. ライブラリをインストール:pip install pandas matplotlib seaborn
  3. CSVを読み込んで、散布図を1枚描く

※ この記事ではコードは最小限。まずは「流れ」を掴むことを優先します。


題材データの例(小さく始める)

以下のような表(CSV)を想定します。

社員ID 氏名 成績 取得資格数
001 Aさん 85 3
002 Bさん 60 1
003 Cさん 72 2
004 Dさん 90 4
005 Eさん 55 0

最小コードで描く:matplotlib → seaborn の順がおすすめ

1) matplotlib(基本形)

import matplotlib.pyplot as plt

scores = [85, 60, 72, 90, 55]
certs  = [ 3,  1,  2,  4,  0]

plt.scatter(scores, certs)          # 素朴な散布図
plt.title("成績と取得資格数の関係")
plt.xlabel("成績")
plt.ylabel("取得資格数")
plt.grid(True)
plt.tight_layout()
plt.show()

まずはこれでOK。散布図の“輪郭”が掴めます。

2) seaborn(見栄えを底上げ)

import seaborn as sns
import matplotlib.pyplot as plt

sns.set(style="whitegrid")          # 見やすい背景
sns.scatterplot(x=scores, y=certs)  # きれいな散布図
plt.title("成績と取得資格数の関係(seaborn)")
plt.xlabel("成績")
plt.ylabel("取得資格数")
plt.tight_layout()
plt.show()

余白や背景、ラベルの視認性が改善され、資料にそのまま使いやすくなります。

一歩進めるなら:点の大きさ(s)、注釈(plt.text)、回帰線(sns.regplot)を少し足すだけで、
「傾向」を語れる1枚に進化します。

“上司に刺さる”見やすさの黄金ルール

  • 1スライド=1メッセージ:このグラフで何を伝えたいかを最初に明記(例:成績と資格には正の関係)
  • 色の意味を固定:意味のない色遊びはNG。強調したい点だけ別色に。
  • ラベルの日本語・単位:軸・凡例・注釈で、読み手の迷いをゼロに。
  • 外れ値への一言:例外点はメモを添える(「異動直後」「受験回数が多い」など)。
  • 結論→根拠の順:タイトルで結論、本文で根拠。読み手の時間を奪わない。

実務に応用しやすい“散布図の使い所”

  • 人事/教育:勤務年数 × 保有スキル、研修回数 × 成果評価
  • 営業:訪問件数 × 成約率、顧客単価 × 継続月数
  • CS/品質:対応時間 × 満足度、バグ報告数 × リリース頻度

「Aを増やすとBがどう動く?」を議論できるので、次の施策を決める会議に最適です。


初心者がつまずきやすい点と対処

  • 日本語が文字化け:OSに合う日本語フォント(Noto等)を指定。
  • 点が重なって見えない:透明度 alpha を下げる、点を小さくする、サンプルを絞る。
  • 尺度が合わない:極端に大きい値は別図に、または対数スケールを検討。
  • データ品質:欠損・異常値の確認を最初に。Pandasdescribeisna が便利。

まとめ:まずは1枚、“小さく作って回す”

  • 散布図は関係性を一目で伝える万能の入門グラフ
  • matplotlibで基本を掴み、seabornで見栄えを底上げ
  • タイトルで結論、色と注釈で“読ませない”設計に

プログラミングはコスパのいい学習です。
一度作ったコードは何度でも使い回せて、毎月の資料作成を劇的に短縮できます。まずは今回の散布図から、1枚でいいので“手を動かして”みましょう。



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