绘制十六进制代码数字作为因变量的方法

问题描述 投票:0回答:1

我正在尝试创建一个数据可视化,显示湿度和温度对植物茎颜色的影响,但植物茎颜色是从照片中获取的独特的十六进制代码。我计划创建一个相关图或热图来捕获这一点,但我不确定如何处理十六进制代码。我已经完成并刚刚计算了十六进制代码中的红色值,但同样,我不确定如何将其转换为 R 中的数字。这是我的一些数据反映了问题:

df1 <- data.frame(cbind(light = c(rep("sun",2),rep("shade",2),rep("mid",2)),
             moisture = c(8,2,4,5,6,7),
             temp = c(85,67,44,55,68,56),
             stem_color = c("#46383d", "#370f1c", "#61374e", "#506843","#688641","#5f5c4d"),
             red = c(70,55,97,80,104,95)))

df1$moisture <- as.numeric(df1$moisture)
df1$temp <- as.numeric(df1$temp)
df1$red <- as.numeric(df1$red)
r ggplot2 colors heatmap ggcorrplot
1个回答
0
投票

这里是一个

geom_tile()
示例,展示了如何处理与数据相关的十六进制代码。我已经修改了您的 df1 代码,因为
cbind()
不是必需的,并且会导致数字变量变成字符向量。这样,以后就不需要纠正了。

library(ggplot2)

df1 <- data.frame(light = rep(c("sun", "shade", "mid"), each = 2),
                  moisture = c(8,2,4,5,6,7),
                  temp = c(85,67,44,55,68,56),
                  stem_color = c("#46383d", "#370f1c", "#61374e", "#506843","#688641","#5f5c4d"),
                  red = c(70,55,97,80,104,95))

ggplot() +
  geom_tile(data = df1, aes(x = moisture, y = temp, fill = stem_color)) +
  scale_fill_manual(values = df1$stem_color,
                    labels = df1$light)

result

© www.soinside.com 2019 - 2024. All rights reserved.