1. ホーム
  2. python

[解決済み] 2 番目の (新しい) プロットを作成し、後で古いプロットの上にプロットするように Matplotlib に指示するには ?

2022-04-20 04:33:02

質問

データをプロットした後、新しい図を作成してデータ2をプロットし、最後に元のプロットに戻ってデータ3をプロットしたいのですが、このようなことはできますか?

import numpy as np
import matplotlib as plt

x = arange(5)
y = np.exp(5)
plt.figure()
plt.plot(x, y)

z = np.sin(x)
plt.figure()
plt.plot(x, z)

w = np.cos(x)
plt.figure("""first figure""") # Here's the part I need
plt.plot(x, w)

ご参考まで matplotlib にプロットが終わったことを伝えるには? は似たようなことをしますが、ちょっと違うんです これは元のプロットにアクセスすることを許しません。

解決するには?

もし、このようなことを定期的に行っているのであれば、matplotlib のオブジェクト指向のインターフェイスを調査する価値があるかもしれません。あなたの場合

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(5)
y = np.exp(x)
fig1, ax1 = plt.subplots()
ax1.plot(x, y)
ax1.set_title("Axis 1 title")
ax1.set_xlabel("X-label for axis 1")

z = np.sin(x)
fig2, (ax2, ax3) = plt.subplots(nrows=2, ncols=1) # two axes on figure
ax2.plot(x, z)
ax3.plot(x, -z)

w = np.cos(x)
ax1.plot(x, w) # can continue plotting on the first axis

少し冗長になりますが、特にそれぞれが複数のサブプロットを持つ複数の図がある場合は、より明確で追跡しやすくなります。