Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python bokeh能否动态更新网格图中的列数?_Python_Bokeh - Fatal编程技术网

Python bokeh能否动态更新网格图中的列数?

Python bokeh能否动态更新网格图中的列数?,python,bokeh,Python,Bokeh,我有两排博克人。顶行包含一个数据表和一个文本输入,它们都可以拉伸宽度,以适应浏览器的宽度。最下面一行包含一个网格图,它可以拉伸宽度,但只能通过扭曲图像的比例来实现。理想情况下,我希望gridplot根据浏览器的大小更新显示的列数 考虑以下示例: 将熊猫作为pd导入 从bokeh.models.widgets导入DataTable、TableColumn 从bokeh.models导入ColumnDataSource,TextInput 从bokeh.plotting导入图形,输出_文件,保存 从

我有两排博克人。顶行包含一个
数据表
和一个
文本输入
,它们都可以
拉伸宽度
,以适应浏览器的宽度。最下面一行包含一个
网格图
,它可以
拉伸宽度
,但只能通过扭曲图像的比例来实现。理想情况下,我希望
gridplot
根据浏览器的大小更新显示的列数

考虑以下示例:

将熊猫作为pd导入
从bokeh.models.widgets导入DataTable、TableColumn
从bokeh.models导入ColumnDataSource,TextInput
从bokeh.plotting导入图形,输出_文件,保存
从bokeh.layouts导入行、列、网格打印
def get_datatable():
“”“这可以毫无问题地扩展宽度”“”
df=pd.DataFrame({'a':[0,1,2],'b':[2,3,4]})
source=ColumnDataSource(df)
Columns=[TableColumn(field=i,title=i)表示df.Columns中的i]
数据表=数据表(列=列,源=源,大小调整模式=拉伸宽度,最大宽度=9999)
返回数据表
def get_text_input():
“”“这可以毫无问题地扩展宽度”“”
返回文本输入(value='Example',title='title',size_mode=“stretch_width”,max_width=9999)
def get_gridplot():
"""
这需要对列进行硬编码
“拉伸宽度”是一个选项,但仅在启用时扭曲图像
"""
无花果=[]
对于范围内的uu(30):
图=图(x_范围=(0,10),y_范围=(0,10))
_=fig.image_rgba(image=[],x=0,y=0)
图附加(图)
返回网格图(子项=图,ncols=2)
顶行=行([get_datatable(),get_text_input()],最大宽度=9999,大小调整模式='stretch_width')
bottom\u row=行(get\u gridplot())
col=列(顶行、底行、大小调整模式=“拉伸宽度”)
输出文件(“example.html”)
保存(col)
我的最终目标是让
gridplot
根据浏览器的宽度自动更新列的数量。有没有一种方法可以在bokeh本土实现这一点?如果没有,是否可以通过
CustomJs
javascript回调执行此操作?

解决方案 调用figure时,请考虑使用
size\u mode=“scale\u width”

fig = figure(x_range=(0,10), y_range=(0,10), sizing_mode=“scale_width”)
注 通常,最好使用
scale\u width
而不是
stretch\u width


Bokeh Doc示例:

根据我的答案,您的代码是否能够正常工作?如果是这样,考虑接受答案并奖励赏金。赏金很快就要结束了:stackoverflow.com/help/bountyThis使每个单独的图变大,但不会增加给定区域中的图数row@NickMorgan谢谢你的反馈,我会很快修改我的答案