widget - 根据小部件更新 vbar x 轴
问题描述
我正在尝试使用散景构建一个简单的应用程序,当在下拉菜单中选择新变量时,直方图会更新。直方图确实会更新,但不会更新 x 轴(类别)。我在不同的论坛上阅读了类似的问题,但没有一个答案能解决我的问题。这是我的代码:
def modify_doc(doc):
def make_dataset(var_name):
CountDf=pd.DataFrame(TrainData[var_name].value_counts()).reset_index()
CountDf.columns=['CATEGORY','COUNT']
#return(CountDf)
return(ColumnDataSource(CountDf))
def make_plot(src):
#p=figure(x_range=list(src.data['CATEGORY']))
p=figure(x_range=FactorRange(factors=list(src.data['CATEGORY'])))
p.x_range.factors = src.data['CATEGORY']
p.vbar(x='CATEGORY', top='COUNT', width=0.9, source=src)
p.xaxis.major_label_orientation = math.pi/2
return(p)
# Update function takes three default parameters
def update(attr, old, new):
new_src = make_dataset(new)
src.data.update(new_src.data)
p.x_range.factors = src.data['CATEGORY']
var_selection = Dropdown(label='Variable to plot:',menu=CatVarLst, value=CatVarLst[0])
var_selection.on_change('value',update)
controls = WidgetBox(var_selection)
initial_var=CatVarLst[0]
src=make_dataset(initial_var)
p = make_plot(src)
layout = column(controls, p)
doc.add_root(layout)
谢谢您的帮助!
解决方案
推荐阅读
- jenkins - 如何在 Jenkins 上设置 cypress - linux
- python - 如何检查变量是否与txt文件中的一行相同 - python
- arrays - 如何在不使用任何循环的情况下计算 char 数组中 char 的长度?
- ios - 子视图中的 UITableView 不响应触摸事件并且不滚动
- rest - 在运行时将 TFDMemTable 重置为默认值(无字段定义)
- linux-device-driver - 如何从 udev 路径转换为 ACPI 设备
- python - 原始反应事件在不和谐 py 中不起作用
- ubuntu - 无法在 Ubuntu1804 上 ping github - 怀疑网络配置问题
- r - 用两行中的值减去所有列
- css - SVG 文本标签中的 CSS 缩放动画在 Safari 上不起作用