我为下面的集群条形图提供了一些代码。任何人都可以告诉我需要做些什么,以便在下表中包含太小技巧。它是一个集群(未堆叠)条形图。
from bokeh.core.properties import value
from bokeh.io import show, output_file
from bokeh.models import ColumnDataSource, FactorRange
from bokeh.plotting import figure
output_file("bar_stacked_grouped.html")
factors = [
("Q1", "jan"), ("Q1", "feb"), ("Q1", "mar"),
("Q2", "apr"), ("Q2", "may"), ("Q2", "jun"),
("Q3", "jul"), ("Q3", "aug"), ("Q3", "sep"),
("Q4", "oct"), ("Q4", "nov"), ("Q4", "dec"),
]
regions = ['east', 'west']
source = ColumnDataSource(data=dict(
x=factors,
east=[ 5, 5, 6, 5, 5, 4, 5, 6, 7, 8, 6, 9 ],
west=[ 5, 7, 9, 4, 5, 4, 7, 7, 7, 6, 6, 7 ],
))
p = figure(x_range=FactorRange(*factors), plot_height=250,
toolbar_location=None, tools="")
p.vbar_stack(regions, x='x', width=0.9, alpha=0.5, color=["blue", "red"], source=source,
legend=[value(x) for x in regions])
p.y_range.start = 0
p.y_range.end = 18
p.x_range.range_padding = 0.1
p.xaxis.major_label_orientation = 1
p.xgrid.grid_line_color = None
p.legend.location = "top_center"
p.legend.orientation = "horizontal"
show(p)
谢谢
迈克尔
答案 0 :(得分:1)
如果我了解您,则要添加工具提示:
所以您可以测试以下内容:
TOOLTIPS = [
("index", "$index"),
("(Q, east, west)", "([@x], @east, @west)"),
]
p = figure(x_range=FactorRange(*factors), plot_height=250, tooltips=TOOLTIPS,
toolbar_location=None, tools="")
答案 1 :(得分:1)
您可以通过以下几行使用悬停工具显示一些数据:
source = ColumnDataSource(data=dict(
x=factors,
east=[ 5, 5, 6, 5, 5, 4, 5, 6, 7, 8, 6, 9 ],
west=[ 5, 7, 9, 4, 5, 4, 7, 7, 7, 6, 6, 7 ],
))
tooltips = [
("x", "@x"),
("name", "$name"),
("value", "@$name")
]
p = figure(x_range=FactorRange(*factors), plot_height=250,
toolbar_location="left", tools="hover", tooltips = tooltips)
悬停变量@$name
可用于从堆栈列中查找每一层的值。例如,如果用户将鼠标悬停在名称为“ East”的堆栈字形上,则@$name
等效于@{East}
。来源:https://bokeh.pydata.org/en/latest/docs/user_guide/categorical.html#hover-tools