複数のグラフに線を描く 質問する

複数のグラフに線を描く 質問する

これが何と呼ばれているのか、あるいはどのように説明すればいいのかさえわからないので、タイトルは少し誤解を招くかもしれません。

最初に添付したグラフは pyplot で作成されました。現在使用している 3 つの赤い点の代わりに、すべてのグラフを通る直線を描画したいと思います。pyplot で可能ですか? 2 番目の画像が私が探しているものです。現在 私が探しているもの

ベストアンサー1

関連する線のクリッピングをオフにすることで、これを実現できます。おそらく、これを実現するにはもっときれいな方法があり、メイン フレームに直接線を描画できるかもしれませんが、私の場合は次の方法でうまくいきました。

from matplotlib import pyplot as plt
from numpy import arange, sin, cos

xx = arange(100)
cut = (xx > 0) & (xx % 17 == 0)
y1 = sin(xx)
y2 = (xx**2) % 2.0+cos(xx+0.5)

fig = plt.figure()
ax1 = fig.add_subplot(211)
ax1.plot(xx, y1, c="blue",zorder=1)
ax1.scatter(xx[cut], y1[cut], c="red",zorder=2)
ax2 = fig.add_subplot(212)
ax2.plot(xx, y2, c="green",zorder=1)
ax2.scatter(xx[cut], y2[cut], c="red",zorder=2)

for x in xx[cut]:
    ax1.axvline(x=x,ymin=-1.2,ymax=1,c="red",linewidth=2,zorder=0, clip_on=False)
    ax2.axvline(x=x,ymin=0,ymax=1.2,c="red",linewidth=2, zorder=0,clip_on=False)

plt.draw()
fig.savefig('pic.png')

もう少し作業すれば、複数のサブプロット ウィンドウの一般的なケースを処理できるように線画を修正できますが、私はひどく怠け者です。:^)

サブプロット間の垂直線の例

おすすめ記事