2024-10-02 12:22:45 发布
网友
我正在尝试使用Bokeh库绘制事件图。我知道使用matplotlib.pyplot.eventplot是可能的,但我需要更多的互动功能,这些功能在Bokeh中可用
我在这个Website中看到了这样一个图表的截图。因此,在博克,这一定是可能的。
如何使用Bokeh库绘制类似的绘图
这个想法很基本。您可以使用figure对象的rect()函数,其中必须定义x、y和width。在您的例子中,图形应该具有x-axis格式的datetime。宽度是任务的持续时间
rect()
x
y
width
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)
输出
评论
正如我在评论结尾提到的,您共享的图是使用内部使用bokeh的^{}生成的。他们使用了我上面描述的相同的想法,但当然dask项目提供了比图中所示更多的内容,并且maby解决了您遇到的不止一个问题
bokeh
这个想法很基本。您可以使用figure对象的
rect()
函数,其中必须定义x
、y
和width
。在您的例子中,图形应该具有x-axis
格式的datetime
。宽度是任务的持续时间最小示例
输出
评论
正如我在评论结尾提到的,您共享的图是使用内部使用} 生成的。他们使用了我上面描述的相同的想法,但当然dask项目提供了比图中所示更多的内容,并且maby解决了您遇到的不止一个问题
bokeh
的^{相关问题 更多 >
编程相关推荐