📊
Matplotlibだけでここまでできる:実務で使う可視化レシピ10選
はじめまして、
株式会社dotConfにて、AIエンジニアをしている古菅(こすげ)です!
前回は「Pandasだけでここまでできる:実務で使う15の処理レシピ」を紹介しましたが、
今回はその続編として、データ可視化に欠かせないMatplotlibのレシピ集をまとめました。
Matplotlibだけでここまでできる:実務で使う可視化レシピ10選
Matplotlibとは?
MatplotlibはPythonの代表的な可視化ライブラリで、折れ線・棒グラフ・散布図・ヒートマップなど幅広い表現が可能です。
シンプルなグラフから論文レベルの図表まで柔軟に作れるのが魅力です。
しかし実務ではこんな悩みをよく耳にします👇
そこで本記事では、実務でよく使うMatplotlibの処理を10個、コピペでそのまま使える「レシピ集」として整理しました。
環境準備
import matplotlib.pyplot as plt
import numpy as np
1. 超基本知識(Essential knowledge)
- データを用意し、
plt.plot()
(折れ線グラフの場合) の括弧の中に 2つのリストを入れる- 1つ目のリスト → x軸の値、2つ目のリスト → y軸の値
-
plt.show()
を最後に書くと、グラフが表示される
2. 折れ線グラフ(Line Plot)
-
plt.plot()
で折れ線グラフを作成可能
# サンプルデータ生成
x = np.arange(1, 11)
y = np.random.randint(10, 100, size=10)
plt.plot(x, y)
plt.show()
実行結果はこちら👇
3. 棒グラフ(Bar Chart)
-
plt.bar()
で棒グラフを作成可能
# サンプルデータ生成
labels = ['A', 'B', 'C', 'D']
values = [23, 45, 56, 78]
plt.bar(labels, values)
plt.show()
実行結果はこちら👇
4. 散布図(Scatter Plot)
-
plt.scatter()
で散布図を作成可能
# サンプルデータ生成
x = np.random.rand(50)
y = np.random.rand(50)
plt.scatter(x, y)
plt.show()
実行結果はこちら👇
5. ヒストグラム(Histogram)
-
plt.hist()
でヒストグラムを作成可能
# サンプルデータ生成
data = np.random.randn(1000)
plt.hist(data, bins=30, alpha=0.7)
plt.show()
実行結果はこちら👇
6. グラフの見た目を整える(Adjust the graph aesthetics)
- Matplotlibでは、タイトル・ラベル・凡例・グリッドなどを設定することで、グラフをより見やすく整えることができます。ここでは代表的な操作を紹介します。
-
plt.plot(color = )
でグラフの色を変更可能 -
plt.title()
でグラフのタイトルを追加可能 -
plt.xlabel()
とplt.ylabel()
で軸ラベルを追加可能 -
plt.legend()
で系列名を表示可能 -
plt.grid(True)
でグリッドを表示可能
-
# サンプルデータ生成
x = np.arange(1, 11)
y = np.random.randint(10, 100, size=10)
plt.plot(x, y, label="Sales Data", color='red') # 折れ線グラフ
plt.title("Graph Title") # グラフタイトル
plt.xlabel("Month") # X軸ラベル
plt.ylabel("Sales") # Y軸ラベル
plt.legend() # 凡例を表示
plt.grid(True) # グリッド線を表示
plt.show()
実行結果はこちら👇
7. 描画領域を確保する(Set up the plotting area)
-
plt.figure()
を使って 描画全体の領域を確保 可能 - これにより、グラフのサイズや解像度を事前にコントロールすることが可能になる
# サンプルデータ生成
x = [0, 1, 2, 3, 4, 5]
y = [0, 1, 4, 9, 16, 25]
# 描画領域を作成(figsizeでサイズ指定)
plt.figure(figsize=(6, 4))
# 折れ線グラフを描画
plt.plot(x, y, marker='o', label="y = x^2")
# タイトルやラベルを設定
plt.title("Sample Line Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
# グリッドと凡例を追加
plt.grid(True)
plt.legend()
# 表示
plt.show()
実行結果はこちら👇
8. 複数系列の描画(Visualize multiple series)
- 1つのグラフ上に複数の系列を重ねて表示できる
- 系列ごとに色や線種を変えると比較がわかりやすくなる
-
label
を指定してplt.legend()
を使うと凡例が自動で作成される
# サンプルデータ生成
x = [0, 1, 2, 3, 4, 5]
y1 = [0, 1, 4, 9, 16, 25]
y2 = [0, 1, 8, 27, 64, 125]
plt.plot(x, y1, label="y = x^2")
plt.plot(x, y2, label="y = x^3", linestyle="--")
plt.title("Multiple Series")
plt.xlabel("x")
plt.ylabel("y")
plt.legend()
plt.grid(True)
plt.show()
実行結果はこちら👇
9. 複数のグラフを表示する(Plot multiple subplots)
-
plt.subplot()
を使うと、1つの描画領域を複数に分割して異なるグラフを配置可能 -
.set_title()
でそれぞれのグラフにタイトルをつけられる - 比較したいデータや系列ごとにグラフを分けて表示できるため、可視化の幅を広げることができる
# サンプルデータ生成
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 1行2列の描画領域を用意
fig, axes = plt.subplots(1, 2, figsize=(10, 4))
# 左側にsin波
axes[0].plot(x, y1, label="sin(x)")
axes[0].set_title("Sine Wave")
axes[0].legend()
axes[0].grid(True)
# 右側にcos波
axes[1].plot(x, y2, label="cos(x)", color="orange")
axes[1].set_title("Cosine Wave")
axes[1].legend()
axes[1].grid(True)
plt.tight_layout()
plt.show()
実行結果はこちら👇
10. グラフの保存(Save the plot)
-
plt.savefig()
を使うと、描画したグラフを画像ファイルとして保存可能 - 保存形式は PNG, JPG, SVG, PDF などに対応しており、引数でファイル名と拡張子を指定。
-
dpi
で解像度を指定でき、bbox_inches="tight"
を使うと余白を最小化 - 保存後も
plt.show()
で画面表示が可能
# サンプルデータ生成
x = np.linspace(0, 10, 100)
y = np.sin(x)
# グラフ描画
plt.figure(figsize=(6, 4))
plt.plot(x, y, label="sin(x)")
plt.title("Sine Wave")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.legend()
plt.grid(True)
# グラフをPNGファイルとして保存
plt.savefig("sine_wave.png", dpi=300, bbox_inches="tight")
# 画面表示
plt.show()
実行結果はこちら👇
まとめ
本記事では、Matplotlibを使った実務でよく使う可視化レシピを10個紹介しました。
重要なポイント
-
✅ 基本可視化:折れ線・棒・散布図・ヒストグラムは必須。
-
✅ 柔軟なカスタマイズ:色・凡例・ラベルを加えるだけで見やすさが大幅に向上。
-
✅ 実務応用:複数系列・サブプロットでビジネス資料向けに整理。
参考リンク
最後に
最後まで読んでくださり、ありがとうございました!
この記事が少しでも皆さんの学びや気づきにつながれば嬉しいです ✨
ぜひ「いいね」と共有をお願いします!🚀
📬 仕事の相談はこちら 📬
お仕事のご相談やご依頼は、下記のフォームよりお気軽にお問い合わせください。
👉 お問い合わせフォーム
メールでのご連絡をご希望の方は、こちらまでお願いいたします。
📧 info@dotconf.co.jp
⭐ お知らせ ⭐
私たちは AI学習サービス「aipass」 も運営しています。
実践的なAIプログラミング学習や副業案件獲得支援をお届けしていますので、ぜひこちらもご覧ください!
Discussion