在R中可视化颜色/调色板列表

tkclm6bt  于 2023-05-04  发布在  其他
关注(0)|答案(4)|浏览(196)

我有以下数据。具有RGB值的帧。因此,每一行指示一种颜色。

pdf <- read.table(header = TRUE, text = "
r     g     b
0.374 0.183 0.528
0.374 0.905 0.337
0.051 0.662 0.028
0.096 0.706 0.898
0.876 0.461 0.628
0.415 0.845 0.286
0.596 0.07  0.523
0.724 0.101 0.673
0.847 0.434 0.937
0.588 0.885 0.604
0.481 0.366 0.337
0.142 0.075 0.276
0.819 0.737 0.658
0.91  0.722 0.979
0.969 0.012 0.451
0.887 0.536 0.123
0.432 0.967 0.446
0.927 0.125 0.332
0.381 0.646 0.656
0.04  0.898 0.798
")

我怎么能想象这些颜色?这可以是颜色条、调色板或饼图。我尝试使用以下方法,但无法将其放入数据中:

pie(rep(1,20), col=rainbow(20))
91zkwejq

91zkwejq1#

我认为最简单的选择是秤。这也具有在颜色中显示十六进制值的优点。

library(scales)
pal <- rgb(ddf$r, ddf$g, ddf$b)
show_col(pal)

smdncfj3

smdncfj32#

如果您通过rgb()转换颜色,则image()在这里将工作得很好

image(1:nrow(ddf), 1, as.matrix(1:nrow(ddf)), 
      col=rgb(ddf$r, ddf$g, ddf$b),
      xlab="", ylab = "", xaxt = "n", yaxt = "n", bty = "n")

x0fgdtte

x0fgdtte3#

作为使用image的解决方案的替代方案,您也可以使用polygon并创建一个非常相似的图:

plot(NA, xlim=c(0, nrow(ddf)), ylim=c(0,1))

for (i in 1:nrow(ddf)) {

  row <- ddf[i,]
  color <- rgb(red=row$r, green=row$g, blue=row$b)
  polygon(x=c(i-1, i, i, i-1), y=c(0, 0, 1, 1), col = color)
}
bpzcxfmw

bpzcxfmw4#

也可以使用ggplot2

library(ggplot2)
qplot(x=1:nrow(ddf), y = 1, fill=factor(1:nrow(ddf)), geom="tile") +
  scale_fill_manual(values = rgb(ddf$r, ddf$g, ddf$b)) +
  theme_void()+
  theme(legend.position="none")

相关问题