【问题标题】:Bokeh Multi-line with hover带悬停的散景多线
【发布时间】:2018-08-31 18:16:07
【问题描述】:

我有看起来像这样的熊猫数据框

           'A' 'B' 'C'
2018/1/1    10  20  20
2018/1/2    34  13  23
2018/1/3    23  45  43
2018/1/4    14  98  76
2018/1/5    58  65  57 

如何将其转换为 columnDataSource ? 如何使用悬停工具在散景中创建多线图。 X轴为日期

【问题讨论】:

标签: python pandas dataframe graph bokeh


【解决方案1】:

进口:

import pandas as pd
from bokeh.models import ColumnDataSource, HoverTool
from bokeh.plotting import figure, show, output_notebook
output_notebook()

这是您展示的数据:

days = ['2018/1/1', '2018/1/2', '2018/1/3', '2018/1/4', '2018/1/5']
data_a = [10, 34, 23, 14, 58]
data_b = [20, 13, 45, 98, 65]
data_c = [20, 23, 43, 76, 57]

创建数据框:

df_plot = pd.DataFrame({'A': data_a, 'B': data_b, 'C': data_c}, index=days)

             A   B   C
2018/1/1    10  20  20
2018/1/2    34  13  23
2018/1/3    23  45  43
2018/1/4    14  98  76
2018/1/5    58  65  57

但是,索引不是正确的日期时间格式,因此请创建格式正确的日期列:

df_plot['dates'] = pd.to_datetime(df_plot.index, format='%Y/%m/%d')

             A   B   C       dates
2018/1/1    10  20  20  2018-01-01
2018/1/2    34  13  23  2018-01-02
2018/1/3    23  45  43  2018-01-03
2018/1/4    14  98  76  2018-01-04
2018/1/5    58  65  57  2018-01-05

现在开始绘图:

source = ColumnDataSource(df_plot)
p = figure(x_axis_type="datetime")
p.line('dates', 'A', source=source, color='red')
p.line('dates', 'B', source=source, color='blue')
p.line('dates', 'C', source=source, color='green')
p.add_tools(HoverTool(tooltips=[("A", "@A"), ("B", "@B"), ("C", "@C")]))
show(p)

这只是一个png,实际输出会有hoover工具。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    相关资源
    最近更新 更多