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

matplotlibでX軸方向にグラフをシフトする方法

matplotlibでは、x軸の値をずらして再プロットするだけで、グラフをX軸方向に簡単にシフトできます。この記事では、sin波を例に、元のグラフと1単位分右にシフトしたグラフを同じ図上に描画する手順を解説します。

シフトの手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • numpyを使ってx・yのデータポイントを作成します。
  • 元の曲線として、xとyのデータポイントをプロットします。
  • シフト後のグラフは、範囲 (1, 1 + len(y)) をx軸の値としてyのデータポイントをプロットします。
  • 凡例を図に配置します。
  • 図を表示するには show() メソッドを使用します。

コード例

import numpy as np
import matplotlib.pyplot as plt

# 図のサイズを設定
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

# x・yのデータポイントを作成
x = np.linspace(-5, 5, 100)
y = np.sin(x)

# 元のグラフとシフトしたグラフを描画
plt.plot(x, y, label='Original Graph')
plt.plot(range(1, 1+len(y)), y, label='Shifted Graph')

# 凡例を配置
plt.legend(loc='upper right')

plt.show()

ポイント解説

ここでのキーとなるのは range(1, 1+len(y)) の部分です。元のx座標が -5〜5 の範囲であるのに対し、シフト側では 1 から始まる連番をx座標として使っています。これにより、yの値(波形)はそのままに、グラフ全体がX軸方向に1単位分だけ右へ移動します。

シフト量を変更したい場合は、開始値や範囲のオフセットを調整してください。たとえば range(2, 2+len(y)) とすれば2単位分のシフトになります。また、np.roll(y, shift) を使うと、データ自体を循環的にシフトすることも可能です。

出力結果

上記のコードを実行すると、元のsin波と、それが右に1単位分シフトされたsin波が、凡例付きで同じ図に表示されます。

matplotlibでX軸方向にグラフをシフトする方法matplotlibでX軸方向にグラフをシフトする方法

  1. Matplotlibでハッチの線幅を変更する方法

    Matplotlibでハッチ(網掛け)の線幅を変更したい場合は、rcParamsの「hatch.linewidth」パラメータを設定することで実現できます。この記事では、具体的な手順とサンプルコードをわかりやすく解説します。実装の手順図のサイズを設定し、サブプロット間および周囲のパディングを調整します。NumPyを使用して、x および y = sin(x) のデータポイントを作成します。plt.rcParams[hatch.linewidth] を使って、ハッチの線幅を設定します。scatter() メソッドを使用し、「/」ハッチが付いた正方形マーカーで、設定した線幅を適用しながらxとyのデー

  2. 【Python】MatplotlibでX軸の値(目盛りラベル)を設定する方法

    Python の Matplotlib でグラフの X 軸の値(目盛りラベル)を自由に設定したい場合は、plt.xticks() メソッドを使うのが最も簡単です。以下の手順で実装できます。 X軸の値を設定する手順 x と y のデータポイントを格納する2つのリストを作成します。 range(len(x)) を使って、目盛りの基準となるインデックス(xticks の範囲)を取得します。 plot() メソッドで、インデックスのリストと y データを使って折れ線グラフを描画します。 xticks() メソッドを使い、デフォルトの目盛りを実際の X 軸の値に置き換えます。 show() メソッドで