Re: [问题] 色码排序成彩虹顺序

楼主: bluecadence (Maxwell's demon)   2017-06-04 01:11:36
大概是像这样吧
http://imgur.com/o4jLKXf
接上你的资料 colorname,
rgb_color = col2rgb(colorname)
hsv_color = rgb2hsv(rgb_color)
df_hsv = data.frame()
for (n in 1:40){
df_hsv = rbind(df_hsv, c(hsv_color[1,n],hsv_color[2,n],hsv_color[3,n]))
}
colnames(df_hsv)[1] = 'h'
colnames(df_hsv)[2] = 's'
colnames(df_hsv)[3] = 'v'
df_hsv_sort = df_hsv[with(df_hsv, order(h,s,v)), ]
rgb_sort = hsv(df_hsv_sort$h,df_hsv_sort$s,df_hsv_sort$v)
n <- as.matrix(1:40)
image(n, col = rgb_sort)
※ 引述《pp61022 (fight)》之铭言:
: [问题类型]:
: 程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
: [软件熟悉度]:
: 入门(写过其他程式,只是对语法不熟悉)
: [问题叙述]:
: (代PO)
: 我有一组色码,总共100个颜色,想要照彩虹的颜色顺序排序,我一开始使用sort排序,
: 但色码命名好像并非照彩虹颜色顺序命名,所以一直没办法排序成彩虹的顺序,
: 有google过但可能关键字下的不对, 一直没找到类似的指引。
: 不知道有没有版友知道或处理过这样的问题,想请教大家谢谢。
: 程式码如下,我只撷取其中40个色码
: colorname <- c("#8CC600", "#FF2900", "#66A600",
: "#FF9400", "#002EA9", "#005096",
: "#FF2900", "#005893", "#FFFF00",
: "#FFD100", "#FFFF00", "#F40000",
: "#C90000", "#1F823E", "#E00000",
: "#FF4700", "#005494", "#910000",
: "#005893", "#000FBF", "#DBF600",
: "#910000", "#B5E700", "#FF9C00",
: "#FFBD00", "#FFF000", "#338C2D",
: "#DBF600", "#0017BB", "#FF8C00",
: "#FFB300", "#B50000", "#BF0000",
: "#FFE800", "#FFE000", "#529C12",
: "#F0FB00", "#D1F400", "#BAE900",
: "#E40000")
: colorsort <- sort(colorname)
: n <- as.matrix(1:40)
: image(n, col = colorsort)
: [环境叙述]:
: R version 3.3.1 (2016-06-21)
: Platform: x86_64-w64-mingw32/x64 (64-bit)
: Running under: Windows >= 8 x64 (build 9200)
: locale:
: [1] C
: attached base packages:
: [1] tcltk stats graphics
: [4] grDevices utils datasets
: [7] methods base
: [关键字]:
: color
: 选择性,也许未来有用
作者: celestialgod (天)   2017-06-04 01:33:00
cool! 已收精华区
作者: pp61022 (fight)   2017-06-04 10:36:00
太感谢了! 谢谢你上了新的一课

Links booklink

Contact Us: admin [ a t ] ucptt.com