Matplotlib
Matplotlibとは?
Matplotlibは、Pythonでグラフを作成するための最も一般的なライブラリの一つです。科学的なデータの可視化に特に優れており、シンプルな線グラフから複雑な3Dプロットまで、幅広い種類のグラフを作成することができます。
pyplotインターフェース
Matplotlibの最もよく使われるインターフェースはpyplotです。pyplotはMATLABのようなスタイルでグラフを作成することができ、手軽に様々な種類のグラフを描画できます。
import matplotlib.pyplot as plt
import numpy as np
# データの準備
x = np.linspace(0, 10, 100)
y = np.sin(x)
# グラフの描画
plt.plot(x, y)
plt.xlabel("x")
plt.ylabel("sin(x)")
plt.title("サイン曲線")
plt.show()
グラフの種類
線グラフ
散布図
ヒストグラム
棒グラフ
円グラフ
バイオリンプロット
箱ひげ図
3Dグラフ
基本的なカスタマイズ
タイトル、軸ラベル: plt.title(), plt.xlabel(), plt.ylabel()
凡例: plt.legend()
線の種類、色、マーカー: plt.plot(x, y, 'ro--')
軸の範囲: plt.xlim(), plt.ylim()
グリッド: plt.grid()
1.グラフのカスタマイズ
Matplotlibは、非常に柔軟なグラフ作成ライブラリであり、様々な方法でグラフをカスタマイズすることができます。
線の種類、色、マーカー
color : 線の色を指定します
r--は赤 b--は青 g--は緑
linestyle: 線の種類を指定します
marker: マーカーの種類を指定します
o -点 ^ –三角点 s –四角点
alpha: マーカーの透明度
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y, color='red', linestyle='--', marker='o')
plt.show()
plt.plot(x, y, "r--", alpha=0.5)
軸の設定
plt.xlim(0, 5) # x軸の範囲を0から5に
plt.ylim(-1.5, 1.5) # y軸の範囲を-1.5から1.5に
plt.xticks(np.arange(0, 5.1, 0.5)) # x軸の目盛りを0から5まで0.5刻みで
plt.yticks(np.arange(-1, 1.1, 0.5)) # y軸の目盛りを-1から1まで0.5刻みで
グリッドの設定
plt.grid(True) # グリッドを表示
タイトル、軸ラベル、凡例
title: グラフタイトルの表示
label: 軸ラベルの表示
legend: 凡例の表示
plt.title("サイン曲線")
plt.xlabel("x")
plt.ylabel("sin(x)")
plt.legend(["sin"])
その他
figure: 全体のフレームの定義
figsize: 枠組みのサイズ
dpi: 解像度を指定
facecolor: 背景色を指定
edgecolor: 枠の色を指定
linewidth: 枠線の太さ
plt.figure(figsize=(5,5), dpi=60, facecolor='silver', edgecolor='b',linewidth=5)
グラフの種類
plot() : 折れ線
bar():棒グラフ
barh() : 棒グラフ(横)
scatter():散布図
pie():円グラフ
hist():ヒストグラム
bins=: 引数に数字でヒストグラムの棒の数を指定
boxplot() : 箱ひげ図
violinplot():バイオリン図
2.高度カスタマイズ
カスタムレイヤー
matplotlibでは、Artistというオブジェクトを使って、グラフ上に様々な要素を追加することができます。例えば、テキスト、矢印、図形などを自由に配置できます。
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
x = np.linspace(0, 10, 100)
y = np.sin(x)
ax.plot(x, y)
# テキストの追加
ax.text(5, 0.5, "最大値", ha='center', va='center')
# 矢印の追加
ax.annotate("ここが重要", xy=(3, 0.8), xytext=(1, 0.2), arrowprops=dict(facecolor='black', shrink=0.05))
より高度なカスタマイズの例
複数のサブプロット: plt.subplots(nrows, ncols)で複数のグラフを配置
複数の軸: ax.twinx()で2つのy軸を持つグラフを作成
極座標: plt.polar()で極座標グラフを作成
3Dプロット: plt.axes(projection='3d')で3次元グラフを作成
カスタムカラーマップ, 複数のy軸を持つグラフ, 対数軸の利用, 動的なグラフの作成
3.グラフの保存
plt.savefig("graph.png")
この記事が気に入ったらサポートをしてみませんか?