【发布时间】:2016-09-25 00:32:04
【问题描述】:
有没有用 Bokeh 显示数据框的好方法?我有一堆基于表格的文本,我想与一些图表一起显示和动态更新,但我还没有找到一个很好的方法来做到这一点。
【问题讨论】:
有没有用 Bokeh 显示数据框的好方法?我有一堆基于表格的文本,我想与一些图表一起显示和动态更新,但我还没有找到一个很好的方法来做到这一点。
【问题讨论】:
你想使用 bokeh.models.widgets.DataTable:
http://docs.bokeh.org/en/latest/docs/user_guide/interaction.html#data-table
【讨论】:
你应该看看 bokeh.models.widgets.DataTable
http://docs.bokeh.org/en/latest/docs/user_guide/interaction.html#data-table
例子:
from datetime import date
from random import randint
from bokeh.models import ColumnDataSource
from bokeh.models.widgets import DataTable, DateFormatter, TableColumn
from bokeh.io import output_file, show, vform
output_file("data_table.html")
data = dict(
dates=[date(2014, 3, i+1) for i in range(10)],
downloads=[randint(0, 100) for i in range(10)],
)
source = ColumnDataSource(data)
columns = [
TableColumn(field="dates", title="Date", formatter=DateFormatter()),
TableColumn(field="downloads", title="Downloads"),
]
data_table = DataTable(source=source, columns=columns, width=400, height=280)
show(vform(data_table))
您可以使用自己的 DataFrame 交换数据,例如:
data = dict(df[['first', 'second']])
如果列名不同,请将列变量更改为:
columns = [
TableColumn(field="first", title="First"),
TableColumn(field="second", title="Second"),
]
【讨论】:
要将 Pandas DataFrame DF 转换为 Bokeh 中的表格,您可以使用列表解析来设置表格:
from bokeh.models.widgets import DataTable, DateFormatter, TableColumn
Columns = [TableColumn(field=Ci, title=Ci) for Ci in DF.columns] # bokeh columns
data_table = DataTable(columns=Columns, source=ColumnDataSource(DF)) # bokeh table
show(data_table)
这假设您希望 Bokeh 列与 DF 列名称匹配,但如果需要,可以轻松修改。
【讨论】: