如何在R中对颜色进行排序

如何在R中对颜色进行排序,r,colors,R,Colors,我已经使用colorfindr生成了一个十六进制颜色代码向量 我想把它们按颜色从浅到深分类 快速搜索发现,这不是一个简单的问题,例如:或 我使用的颜色向量是: my_colours <- c("#F6F5F5", "#F4F3F0", "#EDF2F0", "#E1E2E3", "#C2D3DD", "#F6F1E5", "#404965", "#E4CCD0", "#DFC575", "#D14845", "#E8B426", "#DF7B6D", "#8DBAD3", "#C44

我已经使用colorfindr生成了一个十六进制颜色代码向量

我想把它们按颜色从浅到深分类

快速搜索发现,这不是一个简单的问题,例如:或

我使用的颜色向量是:


my_colours <- c("#F6F5F5", "#F4F3F0", "#EDF2F0", "#E1E2E3", "#C2D3DD", "#F6F1E5", 
"#404965", "#E4CCD0", "#DFC575", "#D14845", "#E8B426", "#DF7B6D", 
"#8DBAD3", "#C44334", "#DE7E31", "#BCBFCD", "#9E4049", "#97372F", 
"#BC9AB0", "#4E3427", "#132021", "#0273AD", "#1D3F59", "#F9E892", 
"#E2A4AF", "#F6E8D3", "#A5B774", "#A38074", "#6B847E", "#61ABCC", 
"#6F86AC", "#B2BC3D", "#718E43", "#077A85", "#28A8C4", "#1D7B51", 
"#A57D35", "#3483B0", "#F7CA0E", "#F9CE73", "#FDE35C", "#FAE214", 
"#F4DDD2", "#F4C8BE", "#F5BD87", "#F3B61E", "#F2A581", "#F38387", 
"#F3A72F", "#F3952F")


my_colors要以令人愉快的方式对颜色进行“排序”,将相似的颜色分组在一起,我们可以尝试找到连接颜色空间中所有颜色的最短路径。这和著名的旅行推销员问题是一样的。使用RGB颜色空间在R中可以快速完成此操作:

# original colors
ggplot2::qplot(x = 1:50, y = 1, fill = I(my_colours), geom = 'col', width = 1) + ggplot2::theme_void()

库(TSP)
rgb要以一种令人愉快的方式对颜色进行“排序”,将相似的颜色分组在一起,我们可以尝试找到连接颜色空间中所有颜色的最短路径。这和著名的旅行推销员问题是一样的。使用RGB颜色空间在R中可以快速完成此操作:

# original colors
ggplot2::qplot(x = 1:50, y = 1, fill = I(my_colours), geom = 'col', width = 1) + ggplot2::theme_void()

库(TSP)
rgb将它们放在某个颜色空间(例如HCL、HSV、rgb),然后按照这些维度对它们进行排序。将它们放在某个颜色空间(例如HCL、HSV、rgb),然后按照这些维度对它们进行排序。
lab <- convertColor(t(rgb), 'sRGB', 'Lab')
ordered_cols2 <- my_colours[order(lab[, 'L'])]

ggplot2::qplot(x = 1:50, y = 1, fill = I(ordered_cols2), geom = 'col', width = 1) + ggplot2::theme_void()