数据表 R 中的调色板
Color Palettes in datatables R
好奇为什么我们不能在 datatables
上应用发散类型样式。
在下面的代码中,iris
没有 NA,为了简单起见,我想对 150 个条目应用发散方案。所有列都会将颜色应用到 Sepal.Length 排名,但是按列来做是微不足道的...
library(DT);library(colorspace);library(dplyr)
data(iris)
dt=datatable(iris)
for (x in colnames(iris)) {
if(x=='Species')next
dt=dt %>%
formatStyle(x, color = tolower(diverging_hsv(150)[rank(iris$Sepal.Length)]))
}
没有报告错误,但这不起作用
注意带有 NA 的不同数据集会弄乱颜色:
dt <- datatable(airquality)
these=c('Wind','Ozone')
for (x in these) {
#v <- full_seq(unique(airquality[[x]]), .1)
v = airquality[[x]]
cs <- diverging_hsv(length(v))
dt <- dt %>%
formatStyle(x, backgroundColor = styleEqual(v, cs))
}
您似乎无法将值向量直接传递给 formatStyle()
的颜色参数,而是可以使用辅助函数 styleEqual()
将值映射到颜色 1 到 1 :
library(DT)
library(colorspace)
library(dplyr)
library(tidyr)
dt <- datatable(iris)
for (x in colnames(iris)) {
if (x == 'Species') next
v <- full_seq(unique(iris[[x]]), .1)
cs <- diverging_hsv(length(v))
dt <- dt %>%
formatStyle(x, color = styleEqual(v, cs))
}
好奇为什么我们不能在 datatables
上应用发散类型样式。
在下面的代码中,iris
没有 NA,为了简单起见,我想对 150 个条目应用发散方案。所有列都会将颜色应用到 Sepal.Length 排名,但是按列来做是微不足道的...
library(DT);library(colorspace);library(dplyr)
data(iris)
dt=datatable(iris)
for (x in colnames(iris)) {
if(x=='Species')next
dt=dt %>%
formatStyle(x, color = tolower(diverging_hsv(150)[rank(iris$Sepal.Length)]))
}
没有报告错误,但这不起作用
注意带有 NA 的不同数据集会弄乱颜色:
dt <- datatable(airquality)
these=c('Wind','Ozone')
for (x in these) {
#v <- full_seq(unique(airquality[[x]]), .1)
v = airquality[[x]]
cs <- diverging_hsv(length(v))
dt <- dt %>%
formatStyle(x, backgroundColor = styleEqual(v, cs))
}
您似乎无法将值向量直接传递给 formatStyle()
的颜色参数,而是可以使用辅助函数 styleEqual()
将值映射到颜色 1 到 1 :
library(DT)
library(colorspace)
library(dplyr)
library(tidyr)
dt <- datatable(iris)
for (x in colnames(iris)) {
if (x == 'Species') next
v <- full_seq(unique(iris[[x]]), .1)
cs <- diverging_hsv(length(v))
dt <- dt %>%
formatStyle(x, color = styleEqual(v, cs))
}