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

matplotlibで長さの異なる2つの配列をプロットする方法

matplotlibでは、長さが異なる複数の配列でも問題なく同じグラフ上にプロットできます。x軸とy軸それぞれに対応するデータ点を用意し、plot()メソッドを呼び出すだけで、matplotlibが自動的に各データ系列を描画してくれます。

プロットの手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • numpyを使って、長さの異なるy1、x1、y2、x2のデータ点を作成します。
  • plot()メソッドを使用して、(x1, y1) と (x2, y2) のデータ点をプロットします。
  • 図を表示するには、show()メソッドを使用します。

コード例

import numpy as np
import matplotlib.pyplot as plt

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

# 長さ100のランダムなデータ(累積和)
y1 = (np.random.random(100) - 0.5).cumsum()
# y1を10個ずつのグループに分けて平均したデータ(長さ10)
y2 = y1.reshape(-1, 10).mean(axis=1)

x1 = np.linspace(0, 1, 100)
x2 = np.linspace(0, 1, 10)

plt.plot(x1, y1)
plt.plot(x2, y2)

plt.show()

コードの解説

この例では、まず長さ100のランダムなデータの累積和として y1 を生成しています。次に、reshape(-1, 10)y1 を10行ずつに分割し、各行の平均を取ることで長さ10の y2 を作成しています。これは、細かいデータを平滑化(移動平均的な処理)する一般的なテクニックです。

x軸の値も同様に、x1 は0から1までの等間隔の100点、x2 は同じ範囲の10点としており、y軸データと長さが一致するようにしています。このように、x軸とy軸の配列の長ささえ対応していれば、系列ごとに異なる長さのデータを1つのグラフに重ねて表示できます。

出力結果

上記のコードを実行すると、以下のような出力が得られます。

matplotlibで長さの異なる2つの配列をプロットする方法matplotlibで長さの異なる2つの配列をプロットする方法

グラフには、元の細かいデータ(長さ100)と平滑化されたデータ(長さ10)の2つの線が表示され、長さの異なる配列でも問題なく同一の図にプロットできることが確認できます。

  1. Matplotlibでサンプルデータから確率密度関数をプロットする方法

    概要サンプルデータから確率密度関数をプロットするには、NumPyでx軸・y軸のデータポイントを生成し、Matplotlibのplot()メソッドで描画するのが一般的です。ここでは、ガウス関数(正規分布に似た釣り鐘型の曲線)を例に、その基本的な手順をわかりやすく解説します。手順numpyを使ってxとpのデータポイントを作成します。plot()メソッドでxとpのデータポイントをプロットします。xlim()メソッドでX軸の表示範囲を設定します。図を表示するにはshow()メソッドを使用します。コード例import numpy as np from matplotlib import pyplot a

  2. Seabornで2つのグラフを横に並べてプロットする方法(Matplotlib)

    データ分析では、複数のグラフを1つの図の中に並べて比較できると非常に便利です。この記事では、SeabornとMatplotlibを組み合わせて、2つのグラフを横並び(1行2列)で表示する方法を解説します。 実装の流れ 2つのグラフを並べて描画するには、以下の手順を実行します。 plt.subplots(1, 2) を使い、figureサイズ(7, 7)で1行2列のサブプロットを作成します。 Pandasを使って、col1 と col2 のキーを持つデータフレームを作成します。 countplot() メソッドを使用し、カテゴリごとの観測値の件数を棒グラフで可視化します。 subplots_a