如何解决R 中的调色板生成不正确?
我学习 R 还不到一周,正在努力解决这个特定问题。当我导入这个表时:
使用 read.csv
,下面的代码会为 [0.05,0.20] 范围之外的数字生成错误的调色板。当我尝试对范围之外的数字(例如 0.21)使用 rgb(get_color(x),maxColorValue = 255)
时,我收到以下错误消息:
rgb(get_color(x),maxColorValue = 255) 中的错误:颜色强度 不适用,不在 0:255
我认为这意味着当我尝试生成调色板时,rgb 颜色在 255 之外。我从该网站获取了颜色生成代码:
https://themockup.blog/posts/2020-05-13-reactable-tables-the-rest-of-the-owl/
感谢您的帮助,如果我需要添加一些东西,请告诉我!
library(scales)
library(tidyverse)
library(reactable)
scores <- read_csv("scores.csv")
make_color_pal <- function(colors,bias = 1) {
get_color <- colorRamp(colors,bias = bias)
function(x) rgb(get_color(x),maxColorValue = 255)
}
good_color <- make_color_pal(c("#ffffff","#f2fbd2","#c9ecb4","#93d3ab","#35b0ab"),bias = 2)
good_color(seq(0.1,0.9,length.out = 12))
scores %>%
mutate(workshop1 = round(workshop1,1)) %>%
reactable(
pagination = FALSE,compact = TRUE,borderless = FALSE,striped = FALSE,fullWidth = FALSE,defaultColDef = colDef(
align = "center",minWidth = 110
),# This part allows us to apply specific things to each column
columns = list(
workshop1 = colDef(
name = "Workshop 1",style = function(value) {
value
normalized <- (value - min(scores$workshop1)) / (max(scores$workshop1) - min(scores$workshop1))
color <- good_color(normalized)
list(background = color)
},format = colFormat(digits = 2),minWidth = 100
),workshop2 = colDef(
name = "Workshop 2",style = function(value) {
value
normalized <- (value - min(scores$workshop2)) / (max(scores$workshop2) - min(scores$workshop2))
color <- good_color(normalized)
list(background = color)
},workshop3 = colDef(
name = "Workshop 3",style = function(value) {
value
normalized <- (value - min(scores$workshop3)) / (max(scores$workshop3) - min(scores$workshop3))
color <- good_color(normalized)
list(background = color)
},workshop4 = colDef(
name = "Workshop 4",style = function(value) {
value
normalized <- (value - min(scores$workshop4)) / (max(scores$workshop4) - min(scores$workshop4))
color <- good_color(normalized)
list(background = color)
},minWidth = 100
)
)
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。