「Excelのグラフだと伝わりきらない…」「もっと説得力のある資料にしたい」――そんなときに力を発揮するのが
Pythonのデータ可視化です。この記事では、初めてでも取り組みやすい
散布図を中心に、matplotlibとseabornで“上司や顧客に刺さる”資料を作るコツをやさしく解説します。
- ✅ 対象:Python超初心者(可視化は初めて)
- ✅ 題材:成績と取得資格数の関係(人事・教育・研修の文脈で活用しやすい)
- ✅ ゴール:見やすく、意思決定に役立つ1枚のグラフを作れるようになる
目次
なぜ「散布図」から始めるの?
散布図は「Aが増えるとBも増えるのか?」といった関係性(相関)を直感的に伝えるのが得意。
例えば「テストの成績と取得資格数の関係」を散布図で示すと、
「高得点の人ほど資格も多いのか」や「例外的に資格が多い人は誰か」が一目でわかります。
Excelとの違い(初心者向けの実利)
- 同じ書式でいつでも再作成(コードで再現 ⇒ 月次更新が一瞬)
- 色・注釈・目盛りなどを細かく調整できる
- データ読み込み〜前処理〜出力まで一気通貫
必要なツールと最短ステップ
- Pythonを用意(Anaconda もしくは python.org から)
- ライブラリをインストール:
pip install pandas matplotlib seaborn
- 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()
余白や背景、ラベルの視認性が改善され、資料にそのまま使いやすくなります。
一歩進めるなら:点の大きさ(
「傾向」を語れる1枚に進化します。
s
)、注釈(plt.text
)、回帰線(sns.regplot
)を少し足すだけで、「傾向」を語れる1枚に進化します。
“上司に刺さる”見やすさの黄金ルール
- 1スライド=1メッセージ:このグラフで何を伝えたいかを最初に明記(例:成績と資格には正の関係)
- 色の意味を固定:意味のない色遊びはNG。強調したい点だけ別色に。
- ラベルの日本語・単位:軸・凡例・注釈で、読み手の迷いをゼロに。
- 外れ値への一言:例外点はメモを添える(「異動直後」「受験回数が多い」など)。
- 結論→根拠の順:タイトルで結論、本文で根拠。読み手の時間を奪わない。
実務に応用しやすい“散布図の使い所”
- 人事/教育:勤務年数 × 保有スキル、研修回数 × 成果評価
- 営業:訪問件数 × 成約率、顧客単価 × 継続月数
- CS/品質:対応時間 × 満足度、バグ報告数 × リリース頻度
「Aを増やすとBがどう動く?」を議論できるので、次の施策を決める会議に最適です。
初心者がつまずきやすい点と対処
- 日本語が文字化け:OSに合う日本語フォント(Noto等)を指定。
- 点が重なって見えない:透明度
alpha
を下げる、点を小さくする、サンプルを絞る。 - 尺度が合わない:極端に大きい値は別図に、または対数スケールを検討。
- データ品質:欠損・異常値の確認を最初に。Pandasの
describe
やisna
が便利。
まとめ:まずは1枚、“小さく作って回す”
- 散布図は関係性を一目で伝える万能の入門グラフ
- matplotlibで基本を掴み、seabornで見栄えを底上げ
- タイトルで結論、色と注釈で“読ませない”設計に
プログラミングはコスパのいい学習です。
一度作ったコードは何度でも使い回せて、毎月の資料作成を劇的に短縮できます。まずは今回の散布図から、1枚でいいので“手を動かして”みましょう。