【发布时间】:2018-07-09 01:50:11
【问题描述】:
我正在尝试为数据框绘制 HBar。下面的代码非常适合另一个数据帧,但对于当前数据帧,似乎根本没有输出。
以下是代码:
from bokeh.models import ColumnDataSource, DataRange1d, Plot, LinearAxis, Grid,Label,LabelSet,HoverTool
from bokeh.models.glyphs import HBar
from bokeh.resources import INLINE
import bokeh.io
bokeh.io.output_notebook()
source1 = ColumnDataSource(
data=dict(
GID = Customer_rank.GuestId.head(15).tolist(),
GSale = Customer_rank.FinalSalePrice.head(15).astype(int).tolist()
)
)
GID = Customer_rank.GuestId.tolist()
# hover = HoverTool(tooltips=[
# # ("(x,y)", "(@lat, @lon)"),
# ("Merch_ID", "@ID"),
# ('Revenue','@Sales'),
# ("Visits","@Count")
# ])
p = figure(y_range= ID)
# p.background_fill_color = None
# p.background_fill_alpha = None
# labels = LabelSet(x='Count', y='ID', text='Count', level='glyph',
# y_offset=5, render_mode='canvas',source=source)
# p.add_tools(hover)
p.grid.grid_line_color = None
p.xaxis.visible = None
p.yaxis.axis_line_color = None
p.xaxis.axis_line_color = None
p.xaxis.major_tick_line_color = None
p.xaxis.minor_tick_line_color = None
p.outline_line_alpha = 0.2
H_1= HBar(y='GID',right='GSale',height = 0.5,fill_color="#6C69EB")
# H_2 = HBar(y='ID',right='Sales',height = 0.5)
p.add_glyph(source1, H_1)
# p_2 = p.add_glyph(source, H_2)
# p.add_layout(labels)
show(p)
有问题的 Dataframe(head) 如下:
GuestId FinalSalePrice
0 d1dd 16609.103745
1 70c1 4374.211920
2 0bfe 3153.746635
3 5360 2972.489390
4 8b7e 2518.886240
5 7170 2350.038275
6 e359 2312.321375
7 14e1 2057.333395
8 1d1c 1858.219285
9 4956 1793.117495
10 d390 1766.650210
11 2e99 1751.953710
12 ade6 1687.164375
13 bb4c 1686.418435
14 9986 1678.981265
我很困惑为什么代码不渲染图。
编辑: 我使用上面的代码生成了一个带有以下数据框的图:
Merchants Total_Count
0 LP 198787
1 KC 134952
2 BDR 123668
3 JHU 108698
4 LKW 82122
5 COL 75449
6 POW 70844
7 GTK 69816
8 INM 37715
9 PH 13048
10 BLO 7464
11 BWF 4324
12 HO 4233
13 BKM 2957
14 BIN 1877
【问题讨论】:
标签: python pandas jupyter-notebook bokeh