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

时间:2014-09-08 14:12:05

标签: r color-palette

我有以下带有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)) 

4 个答案:

答案 0 :(得分:9)

如果您通过image()

转换颜色,

rgb()将在此处正常运行

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")

enter image description here

答案 1 :(得分:5)

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

答案 2 :(得分:3)

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

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

enter image description here

答案 3 :(得分:1)

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