如何通过单击小部件按钮将所有小部件值设置为默认值?

如何解决如何通过单击小部件按钮将所有小部件值设置为默认值?

在模拟中使用几个滑块来改变某些属性,我想创建一个ipywidgets。将所有滑块值设置为某些默认值的按钮,有人知道怎么做吗?

from ipywidgets import FloatSlider,IntSlider,IntText,Button

A = FloatSlider(value=4,min=-10,max=20,step=0.1)
B = IntSlider(value=2,min=0,max=8,step=2)
C = IntText()

default_value_button = Button(description='click to set default values')

...

#I want this button to set specific values for A,B,C
#I need its action to be:

    A.set_state('value') = 3.7
    B.set_state('value') = 4
    C.set_state('value') = 547

...

display(A,C,default_value_button)

单击按钮时,我需要设置默认值:

here's how it must look like

提前感谢您的关注!

解决方法

这是一个简单的实现,只需为小部件设置default_value属性,然后在创建它们时将这些小部件编译到列表中即可。

与此有关的一个问题是,如果您将这些小部件连接到交互功能,则将该值设置为default也将触发交互功能。这可能是您想要的,也可能不是!

from ipywidgets import *

A = FloatSlider(value=4,min=-10,max=20,step=0.1)
B = IntSlider(value=2,min=0,max=8,step=2)
C = IntText()

A.default_value = 3.7
B.default_value = 4
C.default_value = 547

defaulting_widgets = [A,B,C]

default_value_button = Button(description='click to set default values')

def set_default(button):
    for widget in defaulting_widgets:
        widget.value = widget.default_value

default_value_button.on_click(set_default)

display(A,C,default_value_button)
,

here's how it looks like

import numpy as np
from ipywidgets import *
from matplotlib import cm
import matplotlib.pylab as plt
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d import axes3d    

def hist_3D(xdata,ydata,xtitle='X',ytitle='Y'):
    SQUARE_BIN_NUMBER = IntSlider(description="bins",min=5,max=40,value=20)
    AZIM              = IntSlider(description="azimuth",min=-180,max=180,value=-60,layout=widgets.Layout(width='600px'))
    ELEV              = IntSlider(description="elevation",min=-90,max=90,value=30,layout=widgets.Layout(height='400px'),orientation='vertical')
    VU                = Dropdown (options=[('X histogram',1),('Y histogram',2),('XY colored',3),('Random view',4)],value=4,description='options :')
    SHADE             = Checkbox (description="shade",value=True)
    DEFAULT_VALUE_BUTTON = Button(description='default values')

    SQUARE_BIN_NUMBER.default_value = 20
    AZIM.default_value = -60
    ELEV.default_value = 30
    VU.default_value = 4
    SHADE.default_value = True

    defaulting_widgets = [SQUARE_BIN_NUMBER,AZIM,ELEV,VU,SHADE]
    def run(square_bin_number,azim,elev,vu=None,shade=True):
        if(vu == 1): azim,shade = -90,True
        elif(vu == 2): azim,shade = 0,False
        elif(vu == 3): azim,90,True

        x = np.array(xdata)   #turn x,y data into numpy arrays
        y = np.array(ydata)

        fig = plt.figure(figsize=(10,7))          #create a canvas,tell matplotlib it's 3d
        ax = fig.add_subplot(111,projection='3d')

        #make histogram stuff - set bins - I choose 20x20 because I have a lot of data
        hist,xedges,yedges = np.histogram2d(x,y,bins=(square_bin_number,square_bin_number))
        xpos,ypos = np.meshgrid(xedges[:-1]+xedges[1:],yedges[:-1]+yedges[1:],indexing='ij')
        #attenetion : meshgrid(indexing must be 'ij' and it's 'xy' by default)

        xpos = xpos.flatten()/2.
        ypos = ypos.flatten()/2.
        zpos = np.zeros_like (xpos)

        dx = xedges [1] - xedges [0]
        dy = yedges [1] - yedges [0]
        dz = hist.flatten()

        cmap = cm.get_cmap('jet') # Get desired colormap - you can change this!
        max_height = np.max(dz)   # get range of colorbars so we can normalize
        min_height = np.min(dz)
        # scale each z to [0,1],and get their rgb values
        rgba = [cmap((k-min_height)/max_height) for k in dz]

        ax.bar3d(xpos,ypos,zpos,dx,dy,dz,color=rgba,zsort='average',shade=shade)
        ax.view_init(azim=azim,elev=elev)

        plt.xlabel(xtitle)
        plt.ylabel(ytitle)
        # plt.savefig("Your_title_goes_here")
        plt.show()

    def set_default(button):
        for widget in defaulting_widgets:
            widget.value = widget.default_value

    DEFAULT_VALUE_BUTTON.on_click(set_default)

    out = interactive_output(run,{'vu':VU,'square_bin_number':SQUARE_BIN_NUMBER,'azim':AZIM,'elev':ELEV,'shade':SHADE})

    display(VU,HBox([out,ELEV]),VBox([AZIM,HBox([SQUARE_BIN_NUMBER,SHADE])]),DEFAULT_VALUE_BUTTON)

A = np.random.multivariate_normal([0,0],np.identity(2),size=10000)

x = A[:,0]
y = A[:,1]

hist_3D(x,y)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-