繁体   English   中英

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

[英]visualize a list of colors/palette in R

我有以下带有 rgb 值的 data.frame。 因此,每一行表示一种颜色。

> ddf
       r     g     b
1  0.374 0.183 0.528
2  0.374 0.905 0.337
3  0.051 0.662 0.028
4  0.096 0.706 0.898
5  0.876 0.461 0.628
6  0.415 0.845 0.286
7  0.596 0.070 0.523
8  0.724 0.101 0.673
9  0.847 0.434 0.937
10 0.588 0.885 0.604
11 0.481 0.366 0.337
12 0.142 0.075 0.276
13 0.819 0.737 0.658
14 0.910 0.722 0.979
15 0.969 0.012 0.451
16 0.887 0.536 0.123
17 0.432 0.967 0.446
18 0.927 0.125 0.332
19 0.381 0.646 0.656
20 0.040 0.898 0.798
> 
> dput(ddf)
structure(list(r = c(0.374, 0.374, 0.051, 0.096, 0.876, 0.415, 
0.596, 0.724, 0.847, 0.588, 0.481, 0.142, 0.819, 0.91, 0.969, 
0.887, 0.432, 0.927, 0.381, 0.04), g = c(0.183, 0.905, 0.662, 
0.706, 0.461, 0.845, 0.07, 0.101, 0.434, 0.885, 0.366, 0.075, 
0.737, 0.722, 0.012, 0.536, 0.967, 0.125, 0.646, 0.898), b = c(0.528, 
0.337, 0.028, 0.898, 0.628, 0.286, 0.523, 0.673, 0.937, 0.604, 
0.337, 0.276, 0.658, 0.979, 0.451, 0.123, 0.446, 0.332, 0.656, 
0.798)), .Names = c("r", "g", "b"), class = "data.frame", row.names = c(NA, 
-20L))

我如何可视化这些颜色? 这可以是颜色条,也可以是调色板或饼图。 我尝试使用以下方法,但无法将其放入我的数据中:

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

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

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

在此处输入图片说明

如果您通过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")

在此处输入图片说明

作为使用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)
}

你也可以使用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") 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM