【问题标题】:Python Widgets IssuePython 小部件问题
【发布时间】:2022-12-29 17:26:18
【问题描述】:

我正在研究乘客预测系统,并被介绍到 hvplots 和小部件。这个想法是有一个面板来选择一周中的一天和一个滑块显示 time_frame,其中每 5 分钟、10 分钟等获取数据。通常,在使用典型控制台时,只需要求用户输入一天和一段时间,代码工作正常,并使用 matlibplot 给出所需的图形和表格。但是,在使用 hvplots 和小部件时,当我在交互式面板中选择一个值时,默认值会保留并且在更改面板后不会更改图形/表格。尽管在整个代码中各种赋值和循环中都使用了星期几和 time_frame。不幸的是,我不能提供数据集,但我可以提供代码。下面是代码的一小部分,不完整,只是提供一个想法:

X = pn.widgets.IntSlider(name='Time Divison (mins)', start=5, end=20, step=5)
Dweek = pn.widgets.Select(name='DayChosen', options=['Monday', 'Tuesday', 
                                                     'Wedesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']) 

#interact(f, options=['Monday', 'Tuesday', 'Wedesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] )

#Dweek = input("Enter a day of the week: ")
#X = input("How many minutes would you like to split the graph")
#X = int(X)
dDay = data['DateofFlight'].dt.day_name()


dScannedDateTime = data.set_index(dDay).loc[Dweek.value]['ScanDateTime']
dScannedTime = data.set_index(dDay).loc[Dweek.value]['ScanTime']
dTimeHour = dScannedDateTime.dt.hour
dTimeMinute = dScannedDateTime.dt.minute


dw = data.set_index(dDay).loc[Dweek.value]['FlightNumber'].unique()
dl = data.set_index(dDay).loc[Dweek.value]['FlightNumber']
dRec = data.set_index(dDay).loc[Dweek.value]['RecID']
dCode = data.set_index(dDay).loc[Dweek.value]['AirlineName']
dDepTime = data.set_index(dDay).loc[Dweek.value]['ScheduleTime']
dFlightNum = data['FlightNumber']

【问题讨论】:

    标签: python widget panel hvplot


    【解决方案1】:

    由于代码很不完整,因此很难回复。至少有两种方法可以解决这个问题。

    首先使用面板小部件和 hvPlot 的交互功能。交互式功能允许您通过将管道中的参数替换为小部件,将数据管道(即应用于 Pandas/Xarray 对象的一系列方法)转变为交互式数据管道。管道输出与小部件一起显示,更改小部件值会重新执行管道,您会看到输出发生变化。

    其次,仅使用 Panel,通过声明小部件并使用 pn.interact 或 pn.bind 创建一个函数,只要小部件值发生变化,该函数就会重新执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-11
      • 2019-02-10
      • 1970-01-01
      • 2021-03-15
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多