Python – scipy.interpolate.interp1dで1次元補間を行う方法
scipy.interpolateパッケージに含まれるinterp1d()関数は、1次元関数の補間(インターポレーション)を行うための機能です。xとyといった値の配列を受け取り、何らかの関数y = f(x)を近似したうえで、補間によって新しい点における値を求めることができます。データ points 間の値を滑らかに推定したい場合に非常に便利なツールです。
構文
scipy.interpolate.interp1d(x, y)
ここで、xは実数値からなる1次元配列、yは実数値からなるN次元配列です。補間軸に沿ったyの長さは、xの長さと一致している必要があります。
例1
まず、次の例を見てみましょう。
# 必要なライブラリをインポート
import matplotlib.pyplot as plt
import numpy as np
from scipy import interpolate
# 図のサイズを設定
plt.rcParams["figure.figsize"]=[7.00, 3.50]
plt.rcParams["figure.autolayout"]=True
# 値を定義
x = np.arange(0, 10)
y = np.exp(-x/5.0)
# 入力データ
plt.subplot(1,2,1)
plt.title("Input X and Y")
plt.plot(x,y)
# 補間されたデータ
plt.subplot(1,2,2)
plt.title("Interpolated")
f = interpolate.interp1d(x, y)
x_new = np.arange(0, 7, 0.7)
y_new = f(x_new)
plt.plot(x_new, y_new, 's')
plt.show()出力結果
上記のプログラムを実行すると、次のような出力が得られます。左側に元の入力データ、右側に補間後のデータがプロットされ、元の点の間が滑らかな曲線で埋められていることが確認できます。

例2
続いて、別の例を見てみましょう。
# 必要なライブラリをインポート import matplotlib.pyplot as plt import numpy as np from scipy import interpolate # 図のサイズを設定 plt.rcParams["figure.figsize"]=[7.00, 3.50] plt.rcParams["figure.autolayout"]=True # 値を定義 x = np.arange(0, 10) y = np.exp(-x **2/9.0) # 補間関数を作成 f = interpolate.interp1d(x, y) xnew = np.arange(0, 9, 1.2) plt.plot(x, y, 'o', xnew) plt.show()
出力結果
上記のプログラムを実行すると、次のような出力が得られます。ガウス関数的な減衰カーブに対して補間が適用され、新しいx座標におけるyの値が求められています。

-
Python Matplotlib:サブプロットでX軸目盛り(xticks)を設定する方法
Matplotlibのsubplot機能を使うと、1つの図(figure)をnrows×ncolsのグリッド状に分割して複数のグラフを並べて表示できます。さらにplt.xticksを組み合わせることで、各サブプロットのX軸目盛りの位置を自由に制御することが可能です。 実装手順 1本目と2本目の折れ線用に、それぞれデータのリストを作成します。 現在の図にサブプロットを追加します(nrow=1、ncols=2、index=1)。 破線(dashed)スタイルで1本目の折れ線を描画します。 自動スケーリングのマージンを設定します(0.2)。 X軸目盛りを偶数の位置(2, 4, 6, 8, 10)に
-
【Python入門】Matplotlibで複数のグラフを1つの図に組み合わせる方法(subplot・twinx活用)
はじめに Matplotlibは、同じグラフ上に複数のプロットを重ねて描画できる強力なPythonの可視化ライブラリです。本チュートリアルでは、2つの異なるY軸を使いながら、1つの図の中に複数のデータを組み合わせて表示する方法を、実際に動くコード例とともにわかりやすく解説します。 事前準備:Matplotlibのインストール まず、Pythonのコマンドプロンプト(ターミナル)を開き、以下のコマンドでmatplotlibをインストールしてください。 pip install matplotlib 手順1:表示するデータを準備する ここでは、iPhone・Galaxy・Pixelの3機種につい