Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python】Matplotlibで別のグラフの中に挿入図(インセット)としてグラフを追加する方法

PythonのMatplotlibを使えば、メインのグラフの中に別のグラフを挿入図(インセット)として重ねて表示できます。拡大図や部分詳細の表示など、データをより分かりやすく伝えたい場面で非常に便利なテクニックです。以下の手順で実装できます。

実装手順

  • numpyを使って x および y のデータポイントを作成します。
  • subplots() メソッドで、図(figure)とサブプロット(axes)のセット、つまり figax を生成します。
  • 新しい軸(axis)を作成するため、手順2で作成した既存のfigureに対して add_axes() で軸を追加します。
  • 手順2の軸(ax)に xy をプロットします。
  • 手順3で追加した新しい軸(ax_new)にも xy をプロットします。
  • 図を表示するには show() メソッドを使用します。

サンプルコード

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.linspace(-1, 1, 100)
y = np.sin(x)
fig, ax = plt.subplots()
left, bottom, width, height = [.30, 0.6, 0.2, 0.25]
ax_new = fig.add_axes([left, bottom, width, height])
ax.plot(x, y, color='red')
ax_new.plot(x, y, color='green')
plt.show()

コードのポイント解説

fig.add_axes([left, bottom, width, height]) が挿入図作成の核心部分です。引数には0〜1の範囲の値をリストで渡し、それぞれfigure全体に対する相対的な位置とサイズを指定します。

  • left(0.30):挿入図の左端の位置(figureの幅に対する割合)
  • bottom(0.6):挿入図の下端の位置(figureの高さに対する割合)
  • width(0.2):挿入図の幅
  • height(0.25):挿入図の高さ

この例では、赤色で描画したサインカーブのメイングラフの右上に、同じデータを緑色で描画した小さな挿入図が重ねて表示されます。挿入図の位置やサイズはこれらの値を調整することで自由に変更でき、メイングラフの特定部分を拡大して表示するなどの応用も可能です。

出力結果

【Python】Matplotlibで別のグラフの中に挿入図(インセット)としてグラフを追加する方法

実行すると、赤いサインカーブのメイングラフ上に、緑色の小さなグラフが挿入図として表示されます。この手法を使えば、全体像と詳細部分を1つの図で同時に表現でき、データの可視化の表現力が大きく向上します。

  1. 【Python入門】Matplotlibで複数のグラフを1つの図に組み合わせる方法(subplot・twinx活用)

    はじめに Matplotlibは、同じグラフ上に複数のプロットを重ねて描画できる強力なPythonの可視化ライブラリです。本チュートリアルでは、2つの異なるY軸を使いながら、1つの図の中に複数のデータを組み合わせて表示する方法を、実際に動くコード例とともにわかりやすく解説します。 事前準備:Matplotlibのインストール まず、Pythonのコマンドプロンプト(ターミナル)を開き、以下のコマンドでmatplotlibをインストールしてください。 pip install matplotlib 手順1:表示するデータを準備する ここでは、iPhone・Galaxy・Pixelの3機種につい

  2. Pythonにパスを追加する方法|Windowsの環境変数設定でエラーを解消する手順

    Pythonとは? Pythonは1991年に初めてリリースされたプログラミング言語です。WindowsやmacOS、Linuxなど複数のOSで動作し、開発者はさまざまな用途のコードを記述・開発できます。Web開発、データ分析、AI・機械学習など幅広い分野で活用されており、その柔軟性と充実したサポート体制から、世界で最も広く使われているプログラミング言語のひとつとなっています。 コマンドプロンプトでpythonが認識されない原因 コマンドプロンプトで「python」と入力してもエラーが返され、正しく動作させるには毎回フルパスを指定しなければならないことがあります。これは、コマンドプロンプトが