微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R 中的调色板生成不正确?

如何解决R 中的调色板生成不正确?

我学习 R 还不到一周,正在努力解决这个特定问题。当我导入这个表时:

enter image description here

使用 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 举报,一经查实,本站将立刻删除。