使用SQLite数据绘制BokehPandas图

2024-09-27 23:21:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个带有Pandas的SQLite数据库,并希望使用Bokeh(varea_stack)显示动态数据

我的动态数据(df)结构如下所示:

id        date       site  numberOfSessions  ...  avgSessionDuration  uniqueDimensionCombinations  events  pageViews
0   1  2020-07-29  177777770                 3  ...               11.00                            2       4          3
1   2  2020-07-29  178888883                 1  ...               11.00                            1       4          3
2   3  2020-07-29  177777770                 1  ...               11.00                            1       4          3
3   4  2020-07-29  173333333                 2  ...              260.50                            2      23         10
4   5  2020-07-29  178888883                 2  ...              260.50                            2      23         10
5   6  2020-07-29  173333333                 2  ...              260.50                            2      23         10
6   7  2020-07-29  178888883                12  ...              103.75                           12     143         36
7   8  2020-07-30  178376403                12  ...              103.75                           12     143         36
8   9  2020-07-30  178376403                12  ...              103.75                           12     143         36
9  10  2020-07-28  178376403                12  ...              103.75                           12     143         36

我想创建一个varea_堆栈图,其中:

x轴->;“日期”

y轴->;根据“站点”堆叠的“会话数”

(我想可能使用某种透视表?

这就是我所拥有的:

from bokeh.plotting import figure, output_file, show
from bokeh.embed import components
from bokeh.models import HoverTool

plot = figure()
plot.varea_stack(df.site.unique().tolist(), x=df.index.values.tolist(), source=df)
script, div = components(plot)

我得到的错误是:

Keyword argument sequences for broadcasting must be the same length as stackers

我一直在网上(https://docs.bokeh.org/en/latest/docs/reference/plotting.html#bokeh.plotting.figure.Figure.varea_stack)和通过Stackoverflow进行搜索。我似乎找不到答案


Tags: fromimportgtdocsdfplotstackbokeh
1条回答
网友
1楼 · 发布于 2024-09-27 23:21:53

我不能真正谈论所需的Pandas操作,但这是varea_stack数据需要的一般格式:

sites = [<list of sites>]

data = {
    'date'    : <all the datetime values>,
    <site1>   : <site1 values for every date>,
    <site2>   : <site2 values for every date>,
    <site3>   : <site3 values for every date>,
    ...
}

plot.varea_stack(sites, x='date', source=data)

请注意varea_stack要使用,必须满足以下条件:

  • sites列表中的每一项都必须是数据中的一列
  • 每个站点列的长度必须相同(每个日期的值)

请注意,上面还假设日期转换为实时日期时间值。如果您使用的日期是分类的(即不使用实际日期时间和连续日期时间轴),那么您还需要将日期(字符串)列表传递到图的x_range(以及任何分类轴)

相关问题 更多 >

    热门问题