GUIウィンドウ(TkInterなど)内のprevious question(以下)の例に示すように、matplotlibスライダを使用したかったのです。しかし、非グローバルコンテキストでは、プロット( "spos、fig、ax")の変数は定義されていません。私の理解では、更新はコールバック関数として使用されるため、引数を渡すことはできません。非グローバルコンテキストでのコールバックからのmatplotlibスライダウィジェット位置の取得
もしそうなら、グローバル変数なしでプロットをどのように更新できますか?または
コールバック関数の外でスライダの位置を取得するにはどうすればよいですか?関連
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
fig, ax = plt.subplots()
plt.subplots_adjust(bottom=0.25)
t = np.arange(0.0, 100.0, 0.1)
s = np.sin(2*np.pi*t)
l, = plt.plot(t,s)
plt.axis([0, 10, -1, 1])
axcolor = 'lightgoldenrodyellow'
axpos = plt.axes([0.2, 0.1, 0.65, 0.03], axisbg=axcolor)
spos = Slider(axpos, 'Pos', 0.1, 90.0)
def update(val):
pos = spos.val
ax.axis([pos,pos+10,-1,1])
fig.canvas.draw_idle()
spos.on_changed(update)
plt.show()
は:
1)別のrelated questionは、このトピックをカバーしているようだが、スライダーの位置が得られ、どのように対処していないようです。
2)similar questionは、Slider.set_val()で尋ねられ解決されました。私の場合は、代わりにSlider.get_val()が必要なようです。