我正在使用Holoviews和Bokeh,但有一个问题。使用Bokeh,我可以指定sizing_mode="scale_width“属性,这样我的图表就可以响应了。现在它运行得很好。但我在Hovowiews找不到这样的东西。
boxwhisker = hv.BoxWhisker(df, ['cyl', 'origin'], 'mpg', label='')
boxwhisker.options(show_legend=False, height=200, sizing_mode='scale_width')
renderer = hv.renderer('bokeh')
boxChart = renderer.get_plot(boxwhisker).state
boxChart.name = 'boxChart'
curdoc().add_root(boxChart)sizing_mode='scale_width‘第二行不工作,所以我的图表大小是固定的,没有响应。
有什么解决方案吗?
发布于 2019-02-05 21:49:35
到目前为止,你不能直接通过Holoviews做到这一点,但是有一种方法可以从Holoviews中提取Bokeh图。这个想法取自“结合HoloViews和Bokeh Plot/Widgets”中的this Holoviews page。
上面的例子可以按如下方式响应:
import holoviews as hv
import pandas as pd
from bokeh.io import curdoc
from bokeh.layouts import layout
hv.extension('bokeh')
data = [[1, 'A', 5],
[1, 'A', 3],
[1, 'B', 10],
[1, 'B', 5],
[2, 'A', 5],
[2, 'A', 19],
[2, 'B', 7],
[2, 'B', 10]]
df = pd.DataFrame.from_records(data, columns=['cyl', 'origin', 'mpg'])
boxwhisker = hv.BoxWhisker(df, ['cyl', 'origin'], 'mpg', label='')
boxwhisker.options(show_legend=False, height=200)
renderer = hv.renderer('bokeh').instance(mode='server')
doc = curdoc()
box_chart = renderer.get_plot(boxwhisker, doc)
doc.name = 'boxChart'
plot_layout = layout(box_chart.state, sizing_mode='scale_width')
doc.add_root(plot_layout)https://stackoverflow.com/questions/52708275
复制相似问题