Bokeh - ColumnDataSource 对象
Bokeh API 中的大部分绘图方法都可以通过 ColumnDatasource 对象接收数据源参数。 它可以在绘图和"数据表"之间共享数据。
ColumnDatasource 可以被认为是列名和数据列表之间的映射。 将一个或多个字符串键和列表或 numpy 数组作为值的 Python 字典对象传递给 ColumnDataSource 构造函数。
示例
例子如下
from bokeh.models import ColumnDataSource data = {'x':[1, 4, 3, 2, 5], 'y':[6, 5, 2, 4, 7]} cds = ColumnDataSource(data = data)
此对象然后在字形方法中用作源属性的值。 以下代码使用 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 使用 Pandas DataFrame,而不是将 Python 字典分配给它。
让我们使用"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)