使用数据框

时间:2018-06-17 19:41:28

标签: python pandas bokeh

我正在努力让堆叠的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列,一个是玩家制作的目标,另一个是助手。

我认为我的数据帧是如何构建的,但是我有点浮动它应该如何形成(另一方面无法想象数据帧不符合目的) 。

1 个答案:

答案 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;在堆栈中)。