1

グラフに 3 つの異なるチャネルの脳波データをプロットする必要があります。それらすべてを、水平線で区切られた 1 つの図にプロットしたいと思います。すべてのチャネルに共通の X 軸。

これは、add_axes を使用して簡単に行うことができます。しかし、これらの軸と交差する垂直線を描きたいです。しかし、私はそれを行うことができません。

現在、私のサンプルコードは次のようになっています。

from pylab import figure, show, setp
from numpy import sin, cos, exp, pi, arange

t = arange(0.0, 2.0, 0.01)
s1 = sin(2*pi*t)
s2 = exp(-t)
s3 = 200*t



fig = figure()
t = arange(0.0, 2.0, 0.01)

yprops = dict(rotation=0,
              horizontalalignment='right',
              verticalalignment='center',
              x=-0.1)

axprops = dict(yticks=[])

ax1 =fig.add_axes([0.1, 0.5, 0.8, 0.2], **axprops)
ax1.plot(t, s1)
ax1.set_ylabel('S1', **yprops)

axprops['sharex'] = ax1
#axprops['sharey'] = ax1
# force x axes to remain in register, even with toolbar navigation
ax2 = fig.add_axes([0.1, 0.3, 0.8, 0.2], **axprops)

ax2.plot(t, s2)
ax2.set_ylabel('S2', **yprops)

ax3 = fig.add_axes([0.1, 0.1, 0.8, 0.2], **axprops)
ax3.plot(t, s3)
ax3.set_ylabel('S3', **yprops)




# turn off x ticklabels for all but the lower axes
for ax in ax1, ax2:
    setp(ax.get_xticklabels(), visible=False)

show()

最終的な画像を下のようにしたいと思います。私の現在の出力では、緑色の縦線なしで同じグラフを取得できます。

ここに画像の説明を入力

誰でも助けてもらえますか??? サブプロットを使用したくないし、各軸に axvline を追加したくありません。

ありがとう、トサドリ

4

1 に答える 1

1

使用する

vl_lst = [a.axvline(x_pos, color='g', lw=3, linestyle='-') for a in [ax1, ax2, ax3]]

フレームごとに更新するには:

new_x = X
for v in vl_lst:
    v.set_xdata(new_x)

axvline文書

于 2013-05-22T03:10:38.643 に答える