我正在繪製一個分類數據集,並希望使用不同的顏色來表示不同的類別。給定一個n
,我怎樣才能得到n
R中最獨特的顏色數量?謝謝。如何在R中生成一些最獨特的顏色?
回答
您可以使用colorRampPalette
從基地或RColorBrewer
包:
隨着colorRampPalette
,您可以按如下方式指定顏色:
colorRampPalette(c("red", "green"))(5)
# [1] "#FF0000" "#BF3F00" "#7F7F00" "#3FBF00" "#00FF00"
您也可以提供十六進制代碼,以及:
colorRampPalette(c("#3794bf", "#FFFFFF", "#df8640"))(5)
# [1] "#3794BF" "#9BC9DF" "#FFFFFF" "#EFC29F" "#DF8640"
# Note that the mid color is the mid value...
使用RColorBrewer
您可以使用預先存在的調色板中的顏色:
require(RColorBrewer)
brewer.pal(9, "Set1")
# [1] "#E41A1C" "#377EB8" "#4DAF4A" "#984EA3" "#FF7F00" "#FFFF33" "#A65628" "#F781BF"
# [9] "#999999"
查看RColorBrewer
其他可用調色板的包。希望這可以幫助。
這裏有幾個選項:
看一看的
palette
功能:palette(rainbow(6)) # six color rainbow (palette(gray(seq(0,.9,len = 25)))) #grey scale
而且
colorRampPalette
功能:##Move from blue to red in four colours colorRampPalette(c("blue", "red"))(4)
看那
colorBrewer
包(和website)。如果你想分色,然後在網站上選擇diverging。例如,library(colorBrewer) brewer.pal(7, "BrBG")
的I want hue網站提供了很多很好的調色板。再次,只需選擇你需要的調色板。例如,你可以從網站上的RGB顏色,使你自己的調色板:
palette(c(rgb(170,93,152, maxColorValue=255), rgb(103,143,57, maxColorValue=255), rgb(196,95,46, maxColorValue=255), rgb(79,134,165, maxColorValue=255), rgb(205,71,103, maxColorValue=255), rgb(203,77,202, maxColorValue=255), rgb(115,113,206, maxColorValue=255)))
感謝您的回答。它會產生顏色,但有些不是很有特色。也許我應該在我的問題中更多地強調這一點。 – RNA 2013-03-07 22:15:50
@RNAer我已經更新了我的答案。您可以使用建議3和4來獲得** diverging **調色板。 – csgillespie 2013-03-07 22:19:32
'我想色相'是一個很棒的網站。這正是我想要的。給定一個數字,如何生成顏色數量的調色板。但我們可以自動在R中完成嗎? – RNA 2013-03-07 22:34:46
我參加了所有的定性調色板從RColorBrewer
包。定性調色板應該提供X個最獨特的顏色。當然,混合它們也會以相似的顏色加入到一個調色板中,但這是我可以獲得的最好(74種顏色)。
library(RColorBrewer)
n <- 60
qual_col_pals = brewer.pal.info[brewer.pal.info$category == 'qual',]
col_vector = unlist(mapply(brewer.pal, qual_col_pals$maxcolors, rownames(qual_col_pals)))
pie(rep(1,n), col=sample(col_vector, n))
其它的解決方法是:取所有的R顏色圖形設備和從他們的樣品。我刪除了灰色的陰影,因爲它們太相似了。這使得433點的顏色
color = grDevices::colors()[grep('gr(a|e)y', grDevices::colors(), invert = T)]
pie(rep(1,n), col=sample(color, n))
與200個色n = 200
:
pie(rep(1,n), col=sample(color, n))
是否有可能將col-col中的十六進制代碼轉換爲相應的顏色名字呢? – Prradep 2017-07-13 13:50:20
@Prradep哪個'col'你的意思是?圖形設備中的「顏色」具有名稱。如果你的意思是一般情況下,並非所有的十六進制代碼都有相應的顏色名稱('grDevices'中只有433種顏色,但有更多的十六進制代碼) – 2017-07-13 15:31:04
我提到'RColorBrewer'中的col = sample(col_vector,n)''打包在你的代碼片段中。例如,如何從樣品(col_vector,3)'中找到'#B3E2CD,#E78AC3,#B3DE69'的顏色名稱。或者,如何查找由'brewer.pal'函數給出的所有十六進制代碼及其顏色名稱。 – Prradep 2017-07-13 15:34:53
您也可以嘗試randomcoloR
package:
library(randomcoloR)
n <- 20
palette <- distinctColorPalette(n)
你可以看到一組非常獨特的顏色選擇餅圖中可視化(由其他答案的建議在這裏)時:
pie(rep(1, n), col=palette)
顯示一張餅圖與50種顏色:
n <- 50
palette <- distinctColorPalette(n)
pie(rep(1, n), col=palette)
謝謝。我必須使用'unname(distinctColorPalette(n))'來使這個工作與ggplot。我想ggplot需要一個未命名的向量。 'col_vector < - unname(distinctColorPalette(n))'然後 '... + scale_color_manual(values = col_vector)...' – Gaurav 2017-08-22 04:15:42
我會推薦使用大型調色板的外部源。
http://tools.medialab.sciences-po.fr/iwanthue/
具有服務根據各種參數和
從圖形設計師透視討論的一般問題,並給出大量的可用的調色板的實施例以調色板的任何大小構成。
要包含一個調色板從RGB值,你只需要值向量中複製,如如:
colors37 = c("#466791","#60bf37","#953ada","#4fbe6c","#ce49d3","#a7b43d","#5a51dc","#d49f36","#552095","#507f2d","#db37aa","#84b67c","#a06fda","#df462a","#5b83db","#c76c2d","#4f49a3","#82702d","#dd6bbb","#334c22","#d83979","#55baad","#dc4555","#62aad3","#8c3025","#417d61","#862977","#bba672","#403367","#da8a6d","#a79cd4","#71482c","#c689d0","#6b2940","#d593a7","#895c8b","#bd5975")
還有獲得最佳鮮明的調色板,而「新」的方式,也關於色盲和可能的黑色和白色轉換與Viridis color palettes。
爲了得到調色板,只需安裝包,並使用功能viridis_pal()
install.packages("viridis")
library(viridis)
viridis_pal(option = "D")(n) # n = number of colors seeked
採用選 「A」, 「B」, 「C」 和 「d」 這些調色板之間進行選擇:
有關更多示例,請訪問該軟件包的小插圖。一些漂亮的例子吧:
也有一個很好的談話解釋YouTube上的好調色板的複雜性:
A Better Default Colormap for Matplotlib | SciPy 2015 | Nathaniel Smith and Stéfan van der Walt
這不太適合獨特的顏色。 – 2017-10-13 07:43:31
- 1. 如何在R中生成從數字到顏色的映射?
- 2. 如何填充R中某些特定區域的顏色?
- 3. 如何將某些值設置爲R中的特定顏色?
- 4. 生成隨機的,但獨特的顏色
- 5. 如何生成與顏色成比例的CSS顏色?
- 6. 生成特定顏色的隨機顏色
- 7. 如何自動刷新這些隨機生成的顏色
- 8. 如何給一個CGPoint線提供獨特的顏色Xcode
- 9. R:如何在每一行中生成最高值的向量?
- 10. 如何生成獨特的itertools鏈?
- 11. 如何根據當前顏色生成相反的顏色?
- 12. 如何找出界面生成器顏色的html顏色
- 13. 如何更改從R中sm.density.compare()生成的密度圖中線條的顏色?
- 14. 在Pig中生成獨特的交叉
- 15. 生成用於數據點的顏色中的R
- 16. 如何在R中繪製顏色圖
- 17. 顏色中的R
- 18. 如何生成隨機顏色?
- 19. 如何從真實顏色生成顏色?
- 20. 如何生成非線性顏色表/顏色條?
- 21. 隨機生成顏色類似的另一種顏色
- 22. 生成不同的顏色
- 23. 生成柔和的顏色
- 24. 如何將特定顏色轉移到r中的柵格
- 25. Excel:如何統計一行中特定顏色(綠色)的發生?
- 26. PHP int以獨特的rgb顏色
- 27. LINES(M)獨特的顏色Matlab
- 28. 每個用戶的獨特顏色
- 29. 在Python中生成顏色漸變
- 30. 在Python中生成顏色範圍
相關:HTTP:/ /stackoverflow.com/questions/6075140/in-r-how-do-i-change-the-color-value-of-just-one-value-in-ggplot2s-scale-fill-b/6076605#6076605 – 2013-03-07 22:36:25
相關:http://stackoverflow.co m/questions/9563711/r-color-palettes-for-many-data-classes/41230685 – 2017-01-09 20:42:13