python-2.7 - 颜色表格单元格 - 散景
问题描述
仅当行的单元格的值存在于另一个数据源中时,我才想为行添加颜色。我的意思是,我有列表 A 和表 B,所以如果行的单元格包含来自 A 的值,我想为 B 中的行 X 着色......我什至不知道从哪里开始......
解决方案
你几乎需要做 ChesuCR 在他们的评论中提到的事情。要更进一步,请参阅下面的小型散景应用程序。
如果您编辑第一个表中的值,将运行回调并检查每个“y”值。需要一个额外的列来跟踪“y”值是否包含在单独的列表/数据源中。然后使用附加列的值为单元格着色。
from bokeh.layouts import row
from bokeh.models import ColumnDataSource
from bokeh.models.widgets import DataTable, TableColumn, HTMLTemplateFormatter
from bokeh.io import curdoc
def update_included(attr, old, new):
list_a = [float(a) for a in source_1.data['a']]
ys = source_2.data['y']
y_in = []
for i, y in enumerate(ys):
if y in list_a:
y_in.append(1)
else:
y_in.append(0)
print(ys, y_in, list_a)
source_2.data['y_in'] = y_in
source_1 = ColumnDataSource(data={'a':[1001,1100]})
columns = [
TableColumn(field="a", title="Criteria list")
]
data_table1 = DataTable(source=source_1, columns=columns, width=400, editable=True)
dict1 = {'x':[0]*6,
'y':[0,10,12,13,200,2001],
'y_in':[0]*6}
source_2 = ColumnDataSource(data=dict1)
template="""
<div style="background:<%=
(function colorfromint(){
if(y_in == 1){
return("blue")}
else{return("red")}
}()) %>;
color: white">
<%= value %></div>
"""
formater = HTMLTemplateFormatter(template=template)
columns = [
TableColumn(field="x", title="x"),
TableColumn(field="y", title="y",formatter=formater)
]
data_table2 = DataTable(source=source_2, columns=columns, width=400)
source_1.on_change('data', update_included)
curdoc().add_root(row(data_table1, data_table2))
推荐阅读
- python - 如何迭代python中的文件,其中记录是多行的,带有逗号分隔的字段,并且记录由空行分隔?
- python - numpy.genfromtxt 返回 NaN 值
- excel - Excel VBA 动态过滤器
- django - 如果在 docker 映像中创建了文件,如何签出分支?
- c++ - 为什么我的程序的自身 CPU 时间与总 CPU 时间相比如此之低?
- c# - 为什么我的数组中应该没有任何内容时总是有 0 - C#
- node.js - 使用 mongoose 根据 ObjectId 保存数组值
- javascript - React Native 中的自定义按钮组件不接受道具
- html - 应该如何将同一行中的图像与
- java - 下载最新的 gradle 版本后项目无法构建