可视化 R 中的颜色/调色板列表
Posted
技术标签:
【中文标题】可视化 R 中的颜色/调色板列表【英文标题】:visualize a list of colors/palette in R 【发布时间】:2014-11-01 19:00:15 【问题描述】:我有以下带有 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))
【问题讨论】:
【参考方案1】:我认为最简单的选择是秤。这还具有以颜色显示十六进制值的优点。
library(scales)
pal <- rgb(ddf$r, ddf$g, ddf$b)
show_col(pal)
【讨论】:
【参考方案2】:如果您通过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")
【讨论】:
这正是我想要的。【参考方案3】:作为使用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)
【讨论】:
很好的替代方法。 Polygon() 是一个有用的函数。【参考方案4】:你也可以使用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")
【讨论】:
好建议。以上是关于可视化 R 中的颜色/调色板列表的主要内容,如果未能解决你的问题,请参考以下文章
R语言ggpubr包的ggdotplot函数可视化偏差棒棒糖图(计算数值的z-score自定义分组数据点色彩自定义调色板添加点图的线段自定义线条形式颜色排序从大到小数据点大小添加数据标签
R语言使用treemap包中的treemap函数可视化treemap图:treemap将分层数据显示为一组嵌套矩形自定义设置treemap图的调色板自定义设置treemap标题字体的大小
seaborn使用boxplot函数进行箱图可视化(使用色彩调色板自定义设置箱图的颜色sns.set_palette全局设置palette参数自定义全局调色板色彩)