見出し画像

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.5plt.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")


この記事が気に入ったらサポートをしてみませんか?