🐋
📊 Pythonデータ可視化入門:基本から応用まで徹底解説
📝 はじめに
Pythonは、データの分析や機械学習の分野で広く使われていますが、データの「可視化」は分析結果を理解・伝達する上で欠かせない重要なステップです。
この記事では、Pythonで使われる主要な可視化ライブラリを使って、基本的なグラフから応用的な視覚化まで、段階的に詳しく解説します。
- Pythonで使える可視化ライブラリの比較
- Matplotlibによる基本的なグラフ作成
- Seabornで美しい統計グラフを描く
- Pandasのplotで素早く可視化
- 応用テクニック:複数グラフやカスタマイズ
- 可視化のベストプラクティス
- まとめ
1️⃣ Pythonで使える可視化ライブラリの比較
ライブラリ | 特徴 | 向いている用途 |
---|---|---|
matplotlib | 基本中の基本。高い柔軟性 | あらゆる種類のグラフ |
seaborn | 美しいスタイル。統計的グラフが簡単 | 分布や相関関係の分析 |
pandas.plot() | データフレームから手軽に可視化 | 軽量なグラフ作成 |
plotly | インタラクティブなグラフ | Web表示やダッシュボード |
altair | 宣言的スタイル、少ないコードで複雑な視覚化 | データ探索 |
本記事では matplotlib、seaborn、pandas にフォーカスして解説します。
2️⃣ Matplotlibによる基本的なグラフ作成
📈 折れ線グラフ(Line plot)
pip install japanize_matplotlib
import matplotlib.pyplot as plt
import japanize_matplotlib
x = [1, 2, 3, 4, 5]
y = [100, 120, 90, 110, 130]
plt.plot(x, y, marker='o')
plt.title('売上の推移')
plt.xlabel('月')
plt.ylabel('売上')
plt.grid(True)
plt.show()
🖥️ 実行結果
📊 棒グラフ(Bar chart)
pip install japanize_matplotlib
import matplotlib.pyplot as plt
import japanize_matplotlib
categories = ['A', 'B', 'C']
values = [20, 35, 30]
plt.bar(categories, values, color='skyblue')
plt.title('カテゴリ別データ')
plt.show()
🖥️ 実行結果
📉 ヒストグラム(Histogram)
pip install japanize_matplotlib
import matplotlib.pyplot as plt
import numpy as np
import japanize_matplotlib
data = np.random.randn(1000)
plt.hist(data, bins=30, edgecolor='black')
plt.title('データの分布')
plt.show()
🖥️ 実行結果
3️⃣ Seabornで美しい統計グラフを描く
📊 ヒストグラム+分布(histplot)
pip install japanize_matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
import japanize_matplotlib
tips = sns.load_dataset("tips")
sns.histplot(tips['total_bill'], kde=True)
plt.title("Total Billの分布")
plt.show()
🖥️ 実行結果
📦 箱ひげ図(boxplot)
pip install japanize_matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
import japanize_matplotlib
sns.boxplot(x='day', y='total_bill', data=tips)
plt.title("曜日ごとの請求額分布")
plt.show()
🖥️ 実行結果
📉 散布図+回帰線(lmplot)
pip install japanize_matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
import japanize_matplotlib
sns.lmplot(x='total_bill', y='tip', data=tips)
plt.title("Total Bill と Tip の関係")
plt.show()
🖥️ 実行結果
4️⃣ Pandasのplotで素早く可視化
📈 ラインチャート
pip install japanize_matplotlib
import matplotlib.pyplot as plt
import pandas as pd
import japanize_matplotlib
df = pd.DataFrame({
'月': ['1月', '2月', '3月', '4月'],
'売上': [100, 120, 130, 125]
})
df.set_index('月', inplace=True)
df.plot(title='月別売上推移')
plt.show()
🖥️ 実行結果
📊 棒グラフ
pip install japanize_matplotlib
import matplotlib.pyplot as plt
import pandas as pd
import japanize_matplotlib
df = pd.DataFrame({
'月': ['1月', '2月', '3月', '4月'],
'売上': [100, 120, 130, 125]
})
df.set_index('月', inplace=True)
df.plot(kind='bar', title='月別売上比較')
plt.show()
🖥️ 実行結果
5️⃣ 応用テクニック:複数グラフやカスタマイズ
🔹 サブプロットで複数表示
import matplotlib.pyplot as plt
x = range(1, 6)
y1 = [1, 4, 9, 16, 25]
y2 = [25, 16, 9, 4, 1]
fig, axs = plt.subplots(1, 2, figsize=(10, 4))
axs[0].plot(x, y1)
axs[0].set_title('y = x^2')
axs[1].plot(x, y2)
axs[1].set_title('y = -x^2')
plt.tight_layout()
plt.show()
🖥️ 実行結果
🔹 グラフの保存
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.savefig("output.png") # PNGとして保存
6️⃣ 可視化のベストプラクティス
✅ 目的に合ったグラフを選ぶ
- 比較 → 棒グラフ
- 時系列 → 折れ線グラフ
- 分布 → ヒストグラム or 箱ひげ図
- 相関 → 散布図
✅ タイトル、軸ラベル、凡例を丁寧に
✅ 色やスタイルはシンプルに統一
✅ データ量が多い場合はサンプリングも考慮
🎯 まとめ
Pythonでは、様々なライブラリを使って目的に応じたデータの可視化が可能です。
- matplotlib:細かくカスタマイズしたグラフ
- seaborn:統計的な美しいグラフ
- pandas.plot:簡易的な可視化に便利
これらのツールを使いこなすことで、データの特徴をより深く理解し、効果的に伝えることができます。
株式会社ONE WEDGE
【Serverlessで世の中をもっと楽しく】 ONE WEDGEはServerlessシステム開発を中核技術としてWeb系システム開発、AWS/GCPを利用した業務システム・サービス開発、PWAを用いたモバイル開発、Alexaスキル開発など、元気と技術力を武器にお客様に真摯に向き合う価値創造企業です。
Discussion