在散景堆积的条形图中隐藏线段后,重新定位为零

时间:2019-06-07 23:33:59

标签: python bokeh

我想在bokeh中使用垂直堆叠的条形图的click_policy功能来隐藏/显示条形图的不同部分,并使其余部分在y = 0处对齐(向下移至x轴)。也就是说,在下面的示例代码中,我想在图例中单击2015,然后它将隐藏最低的段,然后将剩余的段再次向下移到x轴。因此,条形图将从零开始并显示剩余的两个分段。我需要为此添加一个回调函数吗?

非常感谢!

from bokeh.core.properties import value
from bokeh.io import show, output_file
from bokeh.plotting import figure

output_file("stacked.html")

fruits = ['Apples', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries']
years = ["2015", "2016", "2017"]
colors = ["#c9d9d3", "#718dbf", "#e84d60"]

data = {'fruits' : fruits,
        '2015'   : [2, 1, 4, 3, 2, 4],
        '2016'   : [5, 3, 4, 2, 4, 6],
        '2017'   : [3, 2, 4, 4, 5, 3]}

p = figure(x_range=fruits, plot_height=250, title="Fruit Counts by Year",
           toolbar_location=None, tools="")

p.vbar_stack(years, x='fruits', width=0.9, color=colors, source=data,
             legend=[value(x) for x in years])

p.y_range.start = 0
p.x_range.range_padding = 0.1
p.xgrid.grid_line_color = None
p.axis.minor_tick_line_color = None
p.outline_line_color = None
p.legend.location = "top_left"
p.legend.orientation = "horizontal"
p.legend.click_policy = "hide"

show(p) 

1 个答案:

答案 0 :(得分:1)

从Bokeh 1.2开始,没有内置组件可以支持将交互式图例"hide"功能连接到为一组vbar字形重新计算堆栈器的功能。我也想不出任何hacky或解决方法,因为当使用交互式图例隐藏字形时,没有任何事件可引起关注。不管如何,调整堆垛机也会有些问题。由于每个连续的vbar字形都建立在所有先前的级别上,因此 all 都需要适当地更新vbar堆栈转换。

目前,我只能建议您在feature request on GitHub方面更好地支持这种用例。