Tôi đang vẽ một tập dữ liệu phân loại và muốn sử dụng các màu đặc biệt để thể hiện các danh mục khác nhau. Với số n
, làm thế nào tôi có thể nhận được n
số màu sắc đặc biệt MOST trong R? Cảm ơn.Làm thế nào để tạo ra một số màu sắc đặc biệt nhất trong R?
Trả lời
Bạn có thể sử dụng colorRampPalette
từ cơ sở hoặc RColorBrewer
gói:
Với colorRampPalette
, bạn có thể chỉ định màu sắc như sau:
colorRampPalette(c("red", "green"))(5)
# [1] "#FF0000" "#BF3F00" "#7F7F00" "#3FBF00" "#00FF00"
Hoặc bạn có thể cung cấp mã hex cũng như:
colorRampPalette(c("#3794bf", "#FFFFFF", "#df8640"))(5)
# [1] "#3794BF" "#9BC9DF" "#FFFFFF" "#EFC29F" "#DF8640"
# Note that the mid color is the mid value...
Với RColorBrewer
bạn có thể sử dụng màu từ các bảng màu đã có sẵn:
require(RColorBrewer)
brewer.pal(9, "Set1")
# [1] "#E41A1C" "#377EB8" "#4DAF4A" "#984EA3" "#FF7F00" "#FFFF33" "#A65628" "#F781BF"
# [9] "#999999"
Xem gói RColorBrewer
cho các bảng màu khác có sẵn. Hi vọng điêu nay co ich.
Cảm ơn. Tôi thích tùy chọn cuối cùng 'brewer.pal'. nhưng nó được giới hạn tối đa 9 màu. Tôi thực sự có hơn 9 danh mục. Các lựa chọn thay thế đầu tiên tạo ra một màu gradient, mà không phải là đặc biệt như tôi muốn. – RNA
bạn sẽ không thể chọn nhiều màu "khác biệt". Bạn có thể nhận được tối đa là 12 Tôi giả sử. Bạn nên kiểm tra http://colorbrewer2.org/ và lấy các màu (có 1 bảng màu 12 nếu tôi đúng). – Arun
Tìm kiếm hơn 12 colost đặc biệt sẽ khó khăn - tôi nghĩ có một cuộc thảo luận về trang đó trên trang colorbrewer – alexwhan
Dưới đây là một vài lựa chọn:
Có một cái nhìn tại
palette
chức năng:palette(rainbow(6)) # six color rainbow (palette(gray(seq(0,.9,len = 25)))) #grey scale
Và
colorRampPalette
chức năng:##Move from blue to red in four colours colorRampPalette(c("blue", "red"))(4)
Nhìn vào
colorBrewer
gói (và website). Nếu bạn muốn phân tách màu sắc, sau đó chọn phân tách trên trang web. Ví dụ:library(colorBrewer) brewer.pal(7, "BrBG")
Trang web I want hue cung cấp nhiều bảng màu đẹp mắt. Một lần nữa, chỉ cần chọn bảng màu mà bạn cần. Ví dụ, bạn có thể lấy màu rgb từ trang web và làm cho bảng màu của riêng bạn:
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)))
cảm ơn câu trả lời của bạn. Nó tạo ra màu sắc, nhưng một số không đặc biệt với nhau. có lẽ tôi nên nhấn mạnh thêm về điều đó trong các câu hỏi của mình. – RNA
@RNAer Tôi đã cập nhật câu trả lời của mình. Bạn có thể sử dụng đề xuất 3 và 4 để nhận được ** phân tách ** bảng màu. – csgillespie
'Tôi muốn hue' là một trang web tuyệt vời. Đây chính là điều tôi muốn. Cho một số, làm thế nào để tạo ra một bảng màu của số lượng màu sắc. nhưng chúng ta có thể tự động làm điều đó trong R? – RNA
Tôi tham gia tất cả các bảng tính từ RColorBrewer
gói. Các bảng màu định tính được cho là cung cấp X màu sắc đặc biệt nhất. Tất nhiên, trộn chúng vào một bảng cũng có màu tương tự, nhưng đó là màu tốt nhất tôi có thể nhận được (74 màu).
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))
giải pháp khác là: lấy tất cả các màu R từ các thiết bị đồ họa và mẫu từ họ. Tôi đã loại bỏ các tông màu xám vì chúng quá giống nhau.Điều này cho phép 433 màu
color = grDevices::colors()[grep('gr(a|e)y', grDevices::colors(), invert = T)]
pie(rep(1,n), col=sample(color, n))
với 200 màu sắc n = 200
:
pie(rep(1,n), col=sample(color, n))
Có khả năng chuyển đổi các mã hex trong 'col' thành màu tương ứng tên? – Prradep
@Prradep có nghĩa là gì? 'color' từ thiết bị đồ họa có tên. Nếu bạn nói chung, không phải tất cả mã hex có tên màu tương ứng (chỉ có 433 màu trong 'grDevices' nhưng nhiều mã hex hơn) –
Tôi đang đề cập đến' col = sample (col_vector, n) 'từ' RColorBrewer' trong đoạn mã của bạn. Ví dụ: Cách tìm tên màu cho '# B3E2CD, # E78AC3, # B3DE69' có sẵn từ' mẫu (col_vector, 3) '. Cách khác, Cách tìm tất cả các mã hex được cung cấp bởi hàm 'brewer.pal' với tên màu của chúng. – Prradep
Bạn cũng có thể thử các randomcoloR
package:
library(randomcoloR)
n <- 20
palette <- distinctColorPalette(n)
Bạn có thể thấy rằng một tập hợp các màu sắc khác biệt cao được lựa chọn khi hình dung trong một biểu đồ pie (theo đề nghị của câu trả lời khác ở đây):
pie(rep(1, n), col=palette)
Thể hiện trong một biểu đồ pie với 50 màu sắc:
n <- 50
palette <- distinctColorPalette(n)
pie(rep(1, n), col=palette)
Cảm ơn. Tôi đã phải sử dụng 'unname (distinctColorPalette (n))' để thực hiện công việc này với ggplot. Tôi đoán ggplot cần một vector không tên. 'col_vector <- unname (distinctColorPalette (n))' và sau đó '... + scale_color_manual (giá trị = col_vector) ...' – Gaurav
Tôi khuyên bạn nên sử dụng nguồn bên ngoài cho các bảng màu lớn.
http://tools.medialab.sciences-po.fr/iwanthue/
có một dịch vụ để soạn bất kỳ kích thước của bảng theo thông số khác nhau và
thảo luận về những vấn đề chung chung từ góc độ các nhà thiết kế đồ họa và đưa ra rất nhiều ví dụ về bảng sử dụng được.
Để bao gồm một bảng màu từ RGB giá trị bạn chỉ cần sao chép các giá trị trong một vector như trong ví dụ:
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")
Ngoài ra còn có một cách khá "mới" có được một bảng màu đặc biệt tối ưu, cũng liên quan đến mù màu và chuyển đổi đen trắng có thể với Viridis color palettes.
Để có được bảng, chỉ cần cài đặt các gói và sử dụng các chức năng viridis_pal()
install.packages("viridis")
library(viridis)
viridis_pal(option = "D")(n) # n = number of colors seeked
Với tùy chọn "A", "B", "C" và "D" để chọn giữa các bảng:
Để biết thêm ví dụ, hãy truy cập vào họa tiết của gói.Một số ví dụ đẹp trong đó:
Ngoài ra còn có một buổi nói chuyện tuyệt vời giải thích sự phức tạp của bảng tốt nhất trên YouTube:
A Better Default Colormap for Matplotlib | SciPy 2015 | Nathaniel Smith and Stéfan van der Walt
Điều này không phù hợp với màu sắc đặc biệt. –
- 1. Làm thế nào để tạo ra một tần số âm thanh đặc biệt?
- 2. Làm thế nào để remap màu sắc trong một DrawingBrush?
- 3. Làm thế nào để cho màu sắc cho mỗi lớp trong ô phân tán trong R?
- 4. trình tự qua màu sắc trong R
- 5. Làm thế nào để tạo ra một vector số có độ dài bằng không trong R
- 6. Làm thế nào để cung cấp cho một đồ thị thanh màu sắc/đồ thị màu sắc tùy chỉnh
- 7. làm thế nào để xuất các con số để eps màu sắc trong MATLAB
- 8. Làm thế nào để có được một hình ảnh màu sắc trong iPhone sdk
- 9. Làm thế nào để chuyển đổi màu sắc từ một không gian màu khác?
- 10. tính R G B Binding của màu sắc trong WPF
- 11. Làm thế nào để thiết lập một màu sắc danh sách lựa chọn WPF?
- 12. WPF: Làm thế nào để animate thay đổi màu sắc?
- 13. Làm cách nào để tạo ánh xạ từ các số sang màu trong R?
- 14. Làm thế nào để giữ màu sắc từ đầu ra msbuild?
- 15. Làm thế nào để vẽ một màu gradient trong Android trên Canvas với màu sắc thay đổi?
- 16. MathJax: Làm thế nào để thay đổi màu sắc mặc định cho đầu ra svg
- 17. BIRT: Hàng thay thế Màu sắc trong một nhóm bảng
- 18. làm thế nào để thay đổi màu sắc của một cột trong datagridview?
- 19. Tạo bảng màu tùy chỉnh trong R
- 20. Làm thế nào để tạo ra một hình ảnh màu trắng trong Python?
- 21. Làm thế nào để bấm vào một liên kết và nhận được màu sắc của nó?
- 22. Làm thế nào để tạo ra một Jlist với các màu thay thế
- 23. C++, cách tốt nhất để thay đổi một chuỗi tại một chỉ số đặc biệt
- 24. đặc biệt ngẫu nhiên số
- 25. Tạo một trợ giúp đặc biệt trong rubymotion
- 26. Làm thế nào để buộc pytest ghi màu ra?
- 27. Làm thế nào để đọc màu sắc từ một bù đắp của một XAML LinearGradientBrush?
- 28. Làm thế nào để tạo ra các màu sắc khác nhau của cùng một độ sáng cho biểu đồ đường trong Java?
- 29. thay thế màu sắc trong một hình ảnh trong C#
- 30. Làm thế nào để thay thế màu sắc trong BufferedImage trong JAVA
liên quan: 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 –
Liên quan : http://stackoverflow.co m/câu hỏi/9563711/r-bảng màu-cho-nhiều-dữ liệu-lớp/41230685 –