-2
私は完全にうまく動作するコードを開発しましたが、今は私のコンピュータをいつも私のコンピュータに持っていなくても教授に見せたいと思っています。コードは:Bokehのスライダーを使った震えプロット
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider, Button, RadioButtons
a = 0.5
X, Y = np.mgrid[0:1.05:0.025, 0:1.05:0.025]
varX = #Some equation with X, Y and a (as a parameter)
varY = #Some other equation
U = varX-X
V = varY-Y
length = np.sqrt(U**2 + V**2)
fig, ax = plt.subplots()
Q = plt.quiver(X, Y, varX-X, varY-Y,
color='r',
scale=3*(2 ** .5), units='y')
plt.subplots_adjust(left=0.25, bottom=0.25)
plt.axis([0, 1, 0, 1])
axcolor = 'lightgoldenrodyellow'
axa = plt.axes([0.25, 0.10, 0.65, 0.03], axisbg=axcolor)
sa = Slider(axa, 'Alfa', 0, 1, valinit=a)
def update(val):
a = sa.val
varX = #Same equation as before
varY = #Same equation
Q.set_UVC(varX - X, varY - Y)
fig.canvas.draw_idle()
sa.on_changed(update)
resetax = plt.axes([0.8, 0.025, 0.1, 0.04])
button = Button(resetax, 'Reset', color=axcolor, hovercolor='0.975')
def reset(event):
sa.reset()
button.on_clicked(reset)
plt.show()
私が言ったように、このコードは魅力的なように機能しますが、どうすれば結果を保存できますか?私は
どこかでコードをオンラインにしますか?どのようにjsの書き換えが何か変わると思うかわからない – chris
Bokeh(最後に関連するコード)で 'multi_line'を使って震えを作ることができます:http://bokeh.pydata.org/ja/dev/docs/gallery /quiver.htmlしかし、ボタンをクリックしたときにPythonコードを実行するインタラクティブなアプリケーションを作るためには、同じ問題があります:アプリケーションは永久に実行され、どこかでホストされる必要があります。 – bigreddot
ありがとう、bigreddot。 はい、私はそのコードを見て、私は自分の機能に合わせて書き直しました。スライダがなければ、すべてが完璧に機能します(取得したいフェーズの肖像画は正確です)が、スライダを追加して動作させる方法は実際には分かりません。コールバック関数でUとVを変更する必要がありますが、これはPython関数(ストリームライン)から来るxsとysを変更するので、私は行き詰まってしまったと思います。 私は考え続ける必要があります、すべての助けは非常に感謝します。 – javirk