我的数据集就像:
Count Date teams sex
39 2017/12/28 a m
26 2019/12/28 b f
3 2016/12/28 c f
8 2017/12/28 d m
1 2019/12/28 f f
22 2018/12/28 a m
26 2016/12/29 b m
我想要一张带有性别的堆叠图表,并按团队分组, 每天使用散景图。
我找到了一个答案,但是它使用的是旧的散景图,并且从现在起已弃用。
from bokeh.charts import Bar, output_file, show
p = Bar(df, label='date', values='count', stack='class', group='user',
)
答案 0 :(得分:0)
Bar
很久以前已被弃用,随后被完全删除。我强烈建议不要将其与任何最新版本一起使用,也不建议将其与旧版本一起使用。
相反,用户指南的整章介绍了如何制作各种条形图,包括堆叠和分组的条形图:Handling Categorical Data
要创建堆叠的,分组的条形图,您需要指定nested categories和vbar_stack
一个完整的例子是in the docs,但我在这里也复制了一个简化的版本:
from bokeh.core.properties import value
from bokeh.io import show
from bokeh.models import ColumnDataSource, FactorRange
from bokeh.plotting import figure
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])
show(p)