我正在努力让堆叠的vbar工作。
使用python / pandas和bokeh我想绘制关于足球队球员的几个统计数据。数据框很好地填充,值是一个字符串,它应该是int
,它应该是一个数值。
我使用散景样本尝试调整它以达到我的目的,但我坚持
'ValueError: Keyword argument sequences for broadcasting must be the same length as stackers' this error.
我的代码(没有导入和抓取部分)是:
source = ColumnDataSource(data=statsdfsource[['goals','assists','naam']])
p = figure(plot_height=250, title="Fruit Counts by Year",
toolbar_location=None, tools="")
p.vbar_stack(['goals','assists'], x='naam', width=0.9, color=colors,
source=source)
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"
show(p)
我填充columndatasource
的数据框是
goals assists naam
0 NaN NaN Miguel Santos
1 NaN NaN Aykut Özer
2 NaN NaN Job van de Walle
3 NaN NaN Rowen Koot
4 8.0 6.0 Perr Schuurs
5 4.0 2.0 Wessel Dammers
6 12.0 2.0 Stefan Askovski
7 1.0 NaN Mica Pinto
8 NaN NaN Christopher Braun
9 1.0 4.0 Marco Ospitalieri
10 NaN 1.0 Clint Esser
我想要达到的结果是堆叠的柱状框架,其中x轴是玩家的名字,上面有2列,一个是玩家制作的目标,另一个是助手。
我认为我的数据帧是如何构建的,但是我有点浮动它应该如何形成(另一方面无法想象数据帧不符合目的) 。
答案 0 :(得分:1)
使用分类范围时,您必须告诉figure
轴的类别是什么以及您希望它们显示的顺序,例如提供x_range
之类的内容:
# specify all the factors for the x-axis by passing x_range
p = figure(..., x_range=sorted(df.naam.unique()))
NaN
值也是一个问题,因为它们具有传染性"。我建议在任何情况下都将它们改为零。
最后,错误消息可能表明您的colors
列表长度错误。您在每列中堆叠了两个条形,因此颜色列表也需要为两个(每个颜色一个"行和#34;在堆栈中)。