r - grid.table plots:根据行值设置单元格背景颜色
问题描述
我正在使用grid.table()
将数据框打印为绘图。我想用每行中包含的颜色作为十六进制代码填充单元格。
下面是我正在使用的行的示例。
df
1 "#FFB325" "#000000" "#FFFFFF" "#00080"
2 "#000000" "#000080" "#FFB325" "#FFFFFF"
我尝试使用 grid.table(as.color(df)) 打印绘图。Grid.table 给了我我想要的东西,除了没有颜色编码的单元格。
任何帮助,将不胜感激!
解决方案
如果要为每个单元格选择背景颜色,请定义颜色集,然后使用自定义主题应用它。
尝试这样的事情:
color_df <- data.frame(color = c("#FFB325", "#00EE00", "#FFFFFF", "#008080",
"#00EE00", "#008080", "#FFB325", "#FFFFFF"),
stringsAsFactors = FALSE)
my_table_theme <- ttheme_default(core=list(bg_params = list(fill = color_df$color, col=NA)))
grid.table(color_df, theme = my_table_theme)
要显示多列,每列都有不同的颜色,请为每列创建一个单独的主题,然后将它们全部显示grid.arrange()
:
color_df <- data.frame(blues = c("#F7FBFF", "#DEEBF7", "#C6DBEF", "#9ECAE1", "#6BAED6", "#4292C6",
"#2171B5", "#084594"),
greens = c("#F7FCF5", "#E5F5E0", "#C7E9C0", "#A1D99B", "#74C476", "#41AB5D",
"#238B45", "#005A32"),
spectral = c("#D53E4F", "#F46D43", "#FDAE61", "#FEE08B", "#E6F598", "#ABDDA4",
"#66C2A5", "#3288BD"),
stringsAsFactors = FALSE)
table_theme_blues <- ttheme_default(core=list(bg_params = list(fill = color_df$blues, col=NA)))
table_theme_greens <- ttheme_default(core=list(bg_params = list(fill = color_df$greens, col=NA)))
table_theme_spectral <- ttheme_default(core=list(bg_params = list(fill = color_df$spectral, col=NA)))
grid.arrange(
tableGrob(color_df["blues"], theme=table_theme_blues, rows = NULL),
tableGrob(color_df["greens"], theme=table_theme_greens, rows = NULL),
tableGrob(color_df["spectral"], theme=table_theme_spectral, rows = NULL),
nrow=1)
推荐阅读
- javascript - 对某些网站的 Node js 请求返回带有问号的菱形
- javascript - 发送 JSON 格式的对象并将其转换回来
- javascript - 循环成功后,整个页面被文本“XSS”替换
- python - 为什么当 X 小于 0.5 时 sqrt(1-4*pow(X,2)) 显示数学域错误?
- file - “通道”类型的字段给出错误“无法默认初始化具有泛型类型的变量”
- java - 在 Java 和 golang 中使用 AES 时获得不同的结果(密文)
- jmeter - 将 Web 服务响应写入 Excel
- php - 像 20° 这种类型的 php mysql 中的特殊包不打印/回显
- swift - 如何使用 prefersLargeTitles 更改标题注册表?
- python - 为什么 (rf)clf feature_importance 重视所有值都相同的特征?