如何使用Python Bokeh库绘制事件图?

2024-10-02 12:22:45 发布

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

我正在尝试使用Bokeh库绘制事件图。我知道使用matplotlib.pyplot.eventplot是可能的,但我需要更多的互动功能,这些功能在Bokeh中可用

我在这个Website中看到了这样一个图表的截图。因此,在博克,这一定是可能的。 Bokeh Event Plot

如何使用Bokeh库绘制类似的绘图


Tags: 功能绘图matplotlib图表bokeh绘制事件website
1条回答
网友
1楼 · 发布于 2024-10-02 12:22:45

这个想法很基本。您可以使用figure对象的rect()函数,其中必须定义xywidth。在您的例子中,图形应该具有x-axis格式的datetime。宽度是任务的持续时间

最小示例

import pandas as pd
from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource

df = pd.DataFrame({'y':[1, 2, 3, 4], 
                   'start':[0, 1, 1, 10], 
                   'duration':[1, 2, 1, 5], 
                   'color':['green', 'red', 'blue', 'red']
                  })
>>>df
   y  start  duration  color
0  1      0         1  green
1  2      1         2    red
2  3      1         1   blue
3  4     10         5    red

p = figure(
    width=350,
    height=350,
    title="Task Stream",
    toolbar_location="above",
    x_axis_type="datetime",
)

p.rect(
    source=ColumnDataSource(df),
    x="start",
    y="y",
    width="duration",
    height=0.4,
    fill_color="color",
    line_color="color",
)
show(p)

输出

Basic example for streaming data

评论

正如我在评论结尾提到的,您共享的图是使用内部使用bokeh^{}生成的。他们使用了我上面描述的相同的想法,但当然dask项目提供了比图中所示更多的内容,并且maby解决了您遇到的不止一个问题

相关问题 更多 >

    热门问题