У меня есть следующие коды
def update(val):
if val == 0:
value = s.val
ax1.cla()
ax1.plot_surface(x, y, rm, cmap = cm.coolwarm, linewidth = 0, antialiased = False)
elif val == 1:
value = s.val
ax1.cla()
ax1.plot_surface(x, y, rm1, cmap = cm.coolwarm, linewidth = 0, antialiased = False)
elif val == 2:
value = s.val
ax1.cla()
ax1.plot_surface(x, y, rm2, cmap = cm.coolwarm, linewidth = 0, antialiased = False)
ax1.set_zlim(-110, -80)
slider = wg.IntSlider(value=1, min=1, max=3, description='this is slider')
slideroutput = wg.Output()
display(slider, slideroutput)
def on_value_change(change):
with slideroutput:
print(change['new'])
slider.observe(on_value_change, names='value')
update(slideroutput)
plt.show()
Если вход обновления "i", он показывает i-й трехмерный график в определении функции обновления, где i = 1, 2, 3.
Как спроектировать ползунок таким образом, чтобы при перемещении кнопки управления ползунка на выходе ползунка было 1, 2 или 3, что станет вводом для «обновления»?
Например
update(slider_button)
Спасибо!
Выглядит хорошо. Однако есть ли способ получить последнее значение slideroutput? Когда я использую «slideroutput [-1]», python говорит: «Объект 'Output' не подлежит подписке». Спасибо!
что вы имеете в виду под последним значением?
Например, я перемещаю ползунок, и вывод слайдера дает «2 3 2 3 1 2 1», последнее значение должно быть 1. Однако я не могу использовать слайдер[-1], чтобы получить это значение. Есть ли способ получить последнее значение вывода слайдера? Спасибо!
Когда будет вызван этот вывод? Я имею в виду, после какого действия пользователя? То, как это сделать или возможно ли это, сильно зависит от этого.
«slideroutput» — это вывод ползунка. Я хочу, чтобы этот вывод был вводом функции update(), поскольку этот ввод будет параметром цикла if-else в функции update().
Да, и у меня вопрос: как будет вызываться функция
update()
? используяButton
? Потому что без кнопки я не вижу никакой пользы и пользы от этого. Но кто я такой, чтобы судить, см. мой ответ ниже --edit--Вы можете проверить ключевое слово
continuous_update=True
, чтобы запускать наблюдаемую функцию только тогда, когда вы отпускаете ползунок, а не при каждом изменении значения при перемещении.@ac24 возможно, моя машина просто работает очень медленно, но по умолчанию, даже без ввода
continuous_update=True
, я каким-то образом получаю значение только тогда, когда отпускаю ползунок.