当前位置: 首页 > 面试题库 >

具有条件颜色的单元格的bokeh数据表

裘禄
2023-03-14
问题内容

我想在bokeh中显示一个DataTable,根据单元格的文本内容,单元格是红色还是橙色。

例如,如果单元格包含单词“错误”,则该单元格将以红色背景显示。如果单元格包含“警告”一词,则为橙色。

我相信我应该使用[HTMLTemplateFormatter][1],但是怎么用呢?

我该怎么做?

谢谢


问题答案:

浏览文档,您可以使用HTMLTemplateFormatter和下划线js格式化表格。有关更多信息,请参见http://docs.bokeh.org/en/latest/docs/reference/models/widgets.tables.html
和http://underscorejs.org/#template。我附带了一个基于整数值格式化的示例,尽管您可以根据需要扩展它。

注意:
这实际上是在每个表格单元格中嵌入div,因此每个表格单元格周围仍然有一个小的白色边框。如果可能,您可以调整内部div的大小,或设置父元素的样式。

更新: 根据您使用的bokeh版本,您可能需要在HTML文档中包括lodash或下划线js,即:<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script>

from bokeh.models import ColumnDataSource
from bokeh.models.widgets import DataTable, TableColumn, HTMLTemplateFormatter
from bokeh.io import show

dict1 = {'x':[0]*6,'y':[0,1,0,1,0,1]}
source = ColumnDataSource(data=dict1)

template="""
<div style="background:<%= 
    (function colorfromint(){
        if(value == 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_table = DataTable(source=source, columns=columns, width=800)

如果您乐于在python中定义颜色,则一种更简单的方法是将颜色定义为列数据源中的一个字段,并在模板代码中引用该值。

dict1 = {'x':[0]*6, 
         'y':[0, 1, 0, 1, 0, 1],
         'color':['blue', 'red', 'blue', 'red', 'blue', 'red']}
source = ColumnDataSource(data=dict1)

template="""
<div style="background:<%=color%>"; color="white";>
<%= value %></div>
"""

formater =  HTMLTemplateFormatter(template=template)

如果您完全依赖javascript(即没有基于python的回调),则在基础值更改时,此方法不会更新填充颜色。



 类似资料:
  • 这是我第一次在这里发帖,所以请直接回答我的问题,我会尽我所能解释我的问题。 我的工作簿中有两个工作表,其中工作表1直观地表示一个有162个方格的托盘中多个单位(A1到A162)的位置。并不是所有的方格都被填满,因为有些方格是空的。 现在,第2页显示了单位A1到A162的数值。我已经使用条件格式为每个值分配颜色。 我试图从sheet2将A1的颜色复制到sheet1中具有A1值的单元格,但没有成功。

  • 我使用了如下内容:我为CellStyle设置了一个全局变量,并尝试为第4列中的所有单元格填充颜色。...... 顺便说一下,我使用HSSFWorkbook和HSSFSheet进行报告。 这样,它只是填充整个薄片,结果所有的细胞得到填充的石灰颜色!

  • 我正在尝试用apache POI更改单元格的背景。 伙计们,我做错什么了?

  • 我正在使用Apache POI 4.1.2运行以下代码: 输出文档包含两个具有红色背景的单元格:似乎在第二个单元格上设置红色背景具有覆盖第一个单元格背景颜色的效果。 如果仅在第一个单元格上设置背景,则背景颜色将正确设置为绿色。 我如何解决这个问题?

  • 我正在使用这个引导表插件:http://bootstrap-table.wenzhixin.net.cn/documentation/ 这张桌子运转良好。我正在使用ajax推送一个json数组。桌子完成后,我有一个按钮。当点击此按钮时,它将调用一些函数,并需要更新一些单元格颜色。下面是一个代码示例: 使用我可以更改当前值。。。有没有办法改变背景颜色而不是值?