0
MatplotlibをGUIにして、x軸とy軸をインタラクティブに再スケーリングしたいと考えています。このために、x軸とy軸のそれぞれの最小値と最大値を設定できる4つのテキストボックスを使用します。私が今まで持っているコードは次のとおりです。 複数のテキストボックスに適切なサブミット関数
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import TextBox
import matplotlib.gridspec as gridspec
fig, ax = plt.subplots()
ax.plot([1,3,2])
fig.subplots_adjust(bottom=0.4)
gs = gridspec.GridSpec(2,2)
gs.update(left=0.4, right=0.7, bottom=0.15, top=0.25, hspace=0.1)
axes = [fig.add_subplot(gs[i,j]) for i,j in [[0,0],[0,1],[1,0],[1,1]]]
# create the textboxes
tb_xmin = TextBox(axes[0],'x', hovercolor='0.975', label_pad=0.1)
tb_xmax = TextBox(axes[1],'', hovercolor='0.975')
tb_ymin = TextBox(axes[2],'y', hovercolor='0.975', label_pad=0.1)
tb_ymax = TextBox(axes[3],'', hovercolor='0.975')
def submit(val):
data = eval(val)
# how to know which limit to set here?
ax.set_xlim(data)
plt.draw()
for tb in [tb_xmin,tb_xmax,tb_ymin,tb_ymax]:
tb.on_submit(submit)
plt.show()
は、しかし、私は
submit
機能で立ち往生しています。私は、どのテキストボックスがサブミットして入力するかを認識し、入力が有効でデータアレンジ内にあるという条件の下で適切な最小値または最大値を設定する関数を持っています。
誰も私を助けることができますか?
あなたは素晴らしいです、ありがとうございます! – STJ
これを別の質問として投稿しました。私は、TextBoxウィジェットをmatplotlibに追加すると、TextBoxを使用しないときにインタラクションが遅くなることに気付きました。これはTextBoxウィジェットの一般的な側面ですか? – STJ