我正在处理一个回调方法,在给定特定数据帧的情况下随时创建折线图。
def Total_value(DF):
return pd.DataFrame(pd.DataFrame(DF)['FinalSalePrice'].
groupby(level=0, group_keys=False).
apply(lambda x: x.sort_values(ascending=False).head(15))).reset_index()
def TOP_Item(data):
return np.array(data.ItemCode.value_counts()[data.ItemCode.value_counts() > 20].index)
def figure_creator(arr,l):
# colors = ["#%06x" % random.randint(0,0xFFFFFF) for c in range(len(arr))]
fig = figure(plot_width=1000, plot_height=300,x_axis_type='datetime')
for item in arr:
fig.line(l[l.ItemCode == item].ServicedOn.unique(),l[l.ItemCode == item][np.int(0)], line_width=2)
# fig.add_tools(HoverTool(show_arrow=False,
# line_policy='nearest',
# tooltips=None))
return fig
最后我打电话给:
show(figure_creator(TOP_Item(Total_value(SER_2016)),Total_value(SER_2016)))
我想添加一个Hovertool,它可以突出显示给定的图表并显示该行的标签。
这些的DataFrame非常大,因此我无法在此处上传。 但每个功能的前提解释如下: Total_value:用于计算货币的总价值,数据框中的每个唯一商品都已进行,对它们进行排序,并仅采用前15项。
Top_Item:用于计算15个项目中的哪一个在一年中的14天内出现超过20次(一年中有25个,14天)。进一步返回项目列表。
fig_creator:为每个返回的项创建一行。 ** 有没有办法在每个新生成的线上为hovertool(注释掉)创建一个回调方法?
答案 0 :(得分:-1)
我用选择工具想出来了。发布可能遇到类似问题的其他人。
def figure_creator(arr,l):
# colors = ["#%06x" % random.randint(0,0xFFFFFF) for c in range(len(arr))]
fig = figure(plot_width=1000, plot_height=300,x_axis_type='datetime',tools="reset,hover")
for item in arr:
# dicta
fig.line(l[l.ItemCode == item].ServicedOn.unique(),l[l.ItemCode == item][np.int(0)], line_width=2,alpha=0.4,
hover_line_color='red',hover_line_alpha=0.8)
fig.select(dict(type=HoverTool)).tooltips = {"item":item}
# fig.add_tools(HoverTool(show_arrow=False,
# line_policy='nearest',
# tooltips=None))
return fig