Julia中Pretty Tables如何根据单元格两值符号相反设置单元格颜色
在Julia的Pretty Tables中根据行与表头值的符号差异设置单元格颜色
要实现当单元格对应的行值和表头值符号相反时改变颜色的需求,你可以用Pretty Tables的highlighter参数自定义高亮规则,具体操作如下:
- 先导入所需依赖包:
using PrettyTables, Crayons
- 定义行名、表头数值以及你的数据矩阵(示例数据可替换为你实际的
AStrings):
row_vals = -1:1/4:1 names = string.(row_vals) header_vals = [-1, -3/4, -1/2, -1/4, 0, 1/4, 1/2, 3/4, 1] # 替换成你的真实数据AStrings AStrings = rand(length(row_vals), length(header_vals))
- 编写高亮判断函数:
这个函数会根据行、列索引取出对应行值和表头值,判断两者是否符号相反(自动排除0的情况):
function sign_opposite_highlighter(data, i, j) row_val = parse(Float64, names[i]) header_val = header_vals[j] # 乘积小于0即说明符号相反,0与任何数乘积为0,不会触发高亮 return row_val * header_val < 0 end
- 生成表格并应用高亮规则:
通过Highlighter对象指定触发条件和高亮样式,这里用红色加粗字体,你可以根据需求调整样式(比如修改背景色):
pretty_table(AStrings, header = header_vals, row_names = names, highlighter = Highlighter(f = sign_opposite_highlighter, crayon = Crayon(foreground = :red, bold = true)))
如果想调整高亮样式,比如改成黄色背景,只需要把crayon参数改为Crayon(background = :yellow)即可。
内容的提问来源于stack exchange,提问作者Hana
相关产品推荐
相关产品推荐

