Bokeh - 列数据源



Bokeh API 中的大多数绘图方法都可以通过 ColumnDatasource 对象接收数据源参数。这使得绘图和“数据表”之间共享数据成为可能。

ColumnDatasource 可被视为列名和数据列表之间的映射关系。一个包含一个或多个字符串键以及列表或 numpy 数组作为值的 Python dict 对象传递给 ColumnDataSource 构造函数。

示例

如下示例

from bokeh.models import ColumnDataSource
data = {'x':[1, 4, 3, 2, 5],
   'y':[6, 5, 2, 4, 7]}
cds = ColumnDataSource(data = data)

然后使用此对象作为字符方法中 source 属性的值。下面的代码使用 ColumnDataSource 生成了一个散点图。

from bokeh.plotting import figure, output_file, show
from bokeh.models import ColumnDataSource
data = {'x':[1, 4, 3, 2, 5],
   'y':[6, 5, 2, 4, 7]}
cds = ColumnDataSource(data = data)
fig = figure()
fig.scatter(x = 'x', y = 'y',source = cds, marker = "circle", size = 20, fill_color = "grey")
show(fig)

输出

ColumnDataSource

除了向 ColumnDataSource 指定 Python 字典之外,我们还可以使用 Pandas DataFrame。

让我们使用“test.csv”(本节前面已使用过)来获取一个 DataFrame,并使用它获取 ColumnDataSource 和呈现折线图。

from bokeh.plotting import figure, output_file, show
import pandas as pd
from bokeh.models import ColumnDataSource
df = pd.read_csv('test.csv')
cds = ColumnDataSource(df)
fig = figure(y_axis_type = 'log')
fig.line(x = 'x', y = 'pow',source = cds, line_color = "grey")
show(fig)

输出

rendering
广告