Bokeh 绘制多条线图

Bokeh 绘制多条线图

在本文中,我们将介绍如何使用 Bokeh 从 ColumnDataSource 绘制多条线图。

在数据可视化中,绘制多条线图是一种常见的方式,它可以同时展示多个变量之间的关系。Bokeh 是一个用于数据可视化的强大工具,它提供了丰富的功能来创建交互式和漂亮的多条线图。

阅读更多:Bokeh 教程

准备数据

首先,我们需要准备数据。在这个示例中,我们将使用 ColumnDataSource 对象作为数据源。ColumnDataSource 是 Bokeh 提供的一种数据结构,它可以存储多个列的数据,并且可以在绘图中方便地访问这些数据。

下面是一个示例数据集,它包含了三个变量:x、y1 和 y2。x 是一个时间序列,y1 和 y2 是与 x 相关的两个变量的取值。

from bokeh.models import ColumnDataSource
import pandas as pd

data = {
    'x': pd.date_range(start='1/1/2022', periods=10),
    'y1': [1, 3, 2, 4, 6, 8, 7, 5, 4, 6],
    'y2': [2, 4, 3, 5, 7, 9, 8, 6, 5, 7]
}

source = ColumnDataSource(data)

上述代码创建了一个包含三列数据的 ColumnDataSource 对象,并将其命名为 source。

绘制多条线图

有了数据源后,我们可以使用 Bokeh 创建多条线图了。下面是一个示例代码,它使用了 Line 对象来绘制两条线。

from bokeh.plotting import figure, show

p = figure(title='Multiple Lines', x_axis_type='datetime',
           x_axis_label='Time', y_axis_label='Value')

p.line(x='x', y='y1', source=source, line_color='red', legend_label='Line 1')
p.line(x='x', y='y2', source=source, line_color='blue', legend_label='Line 2')

p.legend.location = 'top_left'
show(p)

上述代码中,我们通过 figure 对象创建了一个绘图空间,并设置了标题、横轴和纵轴的标签。接下来,我们使用 line 方法绘制了两条线,分别用红色和蓝色表示,并分别加上了图例。

最后,我们调用 show 方法显示绘图结果。

定制线的样式

Bokeh 提供了丰富的定制选项,可以修改线的样式。例如,我们可以调整线的颜色、线宽、透明度等。

下面是示例代码,展示了如何定制线的样式。

p = figure(title='Multiple Lines', x_axis_type='datetime',
           x_axis_label='Time', y_axis_label='Value')

p.line(x='x', y='y1', source=source, line_color='red', line_width=2,
       line_dash='dotted', line_alpha=0.8, legend_label='Line 1')

p.line(x='x', y='y2', source=source, line_color='blue', line_width=2,
       line_dash='dashed', line_alpha=0.6, legend_label='Line 2')

p.legend.location = 'top_left'
show(p)

上述代码中,我们使用 line 方法的参数来定制了线的样式。line_color 设置线的颜色,line_width 设置线的宽度,line_dash 设置线的样式(虚线或虚点线),line_alpha 设置线的透明度。

添加数据点

除了绘制线之外,我们还可以添加数据点来更直观地展示数据。在 Bokeh 中,我们可以使用 circle 方法添加数据点。

下面是示例代码,展示了如何添加数据点。

p = figure(title='Multiple Lines', x_axis_type='datetime',
           x_axis_label='Time', y_axis_label='Value')

p.line(x='x', y='y1', source=source, line_color='red', legend_label='Line 1')
p.line(x='x', y='y2', source=source, line_color='blue', legend_label='Line 2')

p.circle(x='x', y='y1', source=source, fill_color='white', size=6)
p.circle(x='x', y='y2', source=source, fill_color='white', size=6)

p.legend.location = 'top_left'
show(p)

上述代码中,我们使用 circle 方法添加了数据点。circle 方法的参数中,x 和 y 是数据点的位置,fill_color 设置数据点的填充颜色,size 设置数据点的大小。

总结

本文介绍了如何使用 Bokeh 绘制多条线图。首先,我们准备了数据,并将其存储在 ColumnDataSource 对象中。然后,我们使用 Line 对象来绘制多条线,并通过定制线的样式和添加数据点来丰富图表。Bokeh 提供了丰富的功能和选项,可以帮助我们创建漂亮和交互式的多条线图。

在实际应用中,我们可以根据具体需求进行定制,例如修改线的样式、添加标签等。希望本文能够帮助读者更好地理解和使用 Bokeh 绘制多条线图的方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Bokeh 问答