簡體   English   中英

如何基於另一個列值格式化bokeh DataTable單元格?

[英]How to format a bokeh DataTable cell based on another column value?

拜。

我正在使用bokeh服務器(版本0.12.13)開發應用程序,並且我有一個帶有幾列的DataTable小部件。 其中之一是對問題開放天數的度量,而另一個是對完成該問題的天數的估計。

在某些情況下,未解決問題的天數超過了估計的天數,如果發生這種情況,我想將估計的天數列塗成紅色。

我嘗試使用“ widget.HTMLTemplateFormatter”,但是我還沒有弄清楚如何訪問另一個列值進行比較並確定是否將單元格塗成紅色。

有誰知道如何解決這個問題?

您可以在下划線js代碼中定義javascript函數,以有條件地為每個單元格着色。 可以訪問鏈接到表的數據源中的每個字段。

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

dict1 = {'estd':[1]*6,
         'actd':[1, 1, 1, 2, 2, 2],
         'z'   :[3, 3, 3, 3, 3, 3]}

source = ColumnDataSource(data=dict1)

template="""
<b><div style="background:<%= 
    (function colorfromint(){
        if(actd > estd){
            return("Red")
        }
        else{
            return("White")
        }
     }()) %>;">
<%= (value).toFixed(1) %></div></b>
"""

formater =  HTMLTemplateFormatter(template=template)
columns = [
    TableColumn(field="estd", title="Estimated Days"),
    TableColumn(field="actd", title="Actual days",formatter=formater),
    TableColumn(field="z", title="z")
]

data_table = DataTable(source=source, columns=columns, width=800)

show(data_table)

如果數據不變,則可以使用python代碼定義顏色,請參見此處的第二個示例: 如何使用HTMLTemplateFormatter調整bokeh數據表中的數字格式?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM