私はy軸上のデータ制限がデータと共に変化するwxPythonを使用してプロットにデータをプロットしています。 canvas.draw()
のようにキャンバス全体を再描画せずに軸を動的に変更したいのですが、プロット自体のようにblitting
を使用したいと思います。matplotlibアニメーションプロットはblitを使用して軸上のラベルを更新しません
y軸の変化があり、プロットでアニメーションが表示されますが、残念ながら、イザベルは消えてしまい、解決策を見つけることができません。理由は軸の設定をget_yaxis().set_animated(True)
に設定しているためです。
私は以下の少しの実例をまとめました。 私はここで何が欠けていますか?
import matplotlib
matplotlib.use('WXAgg')
import wx
import pylab as p
import numpy as npy
from time import sleep
ax = p.subplot(111)
canvas = ax.figure.canvas
x = npy.arange(0,2*npy.pi,0.01)
line, = p.plot(x, npy.sin(x), animated=True)
ax.get_yaxis().set_animated(True)
def update_line(*args):
if update_line.background is None:
update_line.background = canvas.copy_from_bbox(ax.bbox)
for i in range(20):
canvas.restore_region(update_line.background)
line.set_ydata((i/10.0)*npy.sin(x))
ax.set_ylim(-1*i/5.0-0.5,i/5.0+0.5)
ax.draw_artist(ax.get_yaxis())
ax.draw_artist(line)
canvas.blit(ax.bbox)
sleep(0.1)
print 'end'
update_line.cnt = 0
update_line.background = None
wx.EVT_IDLE(wx.GetApp(), update_line)
p.show()
基本的に私はget_ylabels().set_animated(True)
のようなものを探していますが、私はそれを見つけることができません。
これに感謝してくれてありがとうございました。実際これは私にとってもうまくいきました。それは素晴らしいことです! – Merlin
これは非常に役に立ちました!この回答をお寄せいただきありがとうございます。 yaxisとtickラベルのアニメーションが突然明確になりました。 – achennu
これは古いスレッドだとは知っていますが、 'ax.clipbox'は私にNoneを与えます。これは失敗します。何か案は? –