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

最小限の平滑化でMatplotlibを使って線(折れ線)をプロットする方法


Matplotlibで最小限の平滑化を施しながら線(折れ線)をプロットするには、SciPyが提供するPCHIP補間を利用するのが効果的です。PCHIP(区分的3次エルミート補間多項式)は、元のデータ点を必ず通過しつつ、単調性を保護して不要なオーバーシュート(行き過ぎた振動)を抑えられるため、「控えめな滑らかさ」を実現したい場合に最適です。

具体的な手順は以下の通りです。

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • データ点の数を格納するための変数 N を初期化します。
  • NumPy を使用して x および y のデータ点を作成します。
  • pchip() メソッドを使って、1次元の単調な3次補間オブジェクトを生成します。
  • 補間後の (x, interp(x)) と、元のデータ点 (x, y) をそれぞれプロットします。
  • 図を表示するには show() メソッドを呼び出します。

コード例

import numpy as np
from scipy.interpolate import pchip
import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

N = 50
x = np.linspace(-10, 10, N)
y = np.sin(x)
interp = pchip(x, y)

plt.plot(x, interp(x), color='red')
plt.plot(x, y, 'bo')

plt.show()

出力結果

最小限の平滑化でMatplotlibを使って線(折れ線)をプロットする方法最小限の平滑化でMatplotlibを使って線(折れ線)をプロットする方法

このコードでは、赤い線がPCHIP補間によって描かれた滑らかな曲線、青い丸が元のデータ点を表しています。補間曲線はすべてのデータ点を正確に通過しながら、スプライン補間などに比べて控えめな平滑化が実現されていることが確認できます。


  1. Matplotlibで虹のようなマルチカラーの線をプロットする方法

    Matplotlibで虹のようなマルチカラーの線をプロットするには、虹の7色(VIBGYOR)からなるカラーリストを作成し、その色を1つずつ使って複数の線を描画します。 手順 numpyを使ってデータポイント x を作成します。 虹の7色(VIBGYOR)のカラーリストを作成します。 カラーリストの長さの範囲で繰り返し処理を行います。 plot() メソッドを使い、x と y(x+i/20) を指定して線を描画します。マーカーは「o」、線幅は 7、色は colors[i](i はインデックス)を指定します。 図を表示するには show() メソッドを使用します。 コード例 import

  2. Matplotlibで折れ線グラフをアニメーション化する方法を徹底解説

    Matplotlibでは、FuncAnimationを活用することで、折れ線グラフに動きのあるアニメーション効果を簡単に加えることができます。本記事では、基本的な手順と実際に動作するサンプルコードを交えながら、その方法をわかりやすく解説します。折れ線グラフをアニメーション化する基本手順subplots()メソッドを使用して、図(figure)とサブプロットを作成します。x軸・y軸それぞれの表示範囲(スケール)を設定します。NumPyを使って、xおよびtのデータ点を生成します。座標ベクトルからmeshgrid()で座標行列X2とT2を作成します。plot()メソッドでxとFのデータを使い、折れ線