大概是像這樣吧
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
: 選擇性,也許未來有用