2013-08-23 41 views
8

Tôi muốn sử dụng gói SN SNA để thực hiện phân tích mạng xã hội. Các phần tử màu SNA chỉ sử dụng tên màu R (tên văn bản).Tìm tên màu cho các màu gần bảng màu colorBrewer

Tôi muốn tìm gần phù hợp từ một bảng ColorBrewer (set3) với tên màu trong R.

Không có nhiều kết hợp chính xác trong không gian RGB.

require(RColorBrewer) 
brew10 <- brewer.pal(10, "Set3") 
rcol <- colors() 
brew10rgb <- col2rgb(brew10) 
allrgb <- col2rgb(rcol) 
apply(t(brew10rgb), 1, paste, collapse="$$") %in% apply(t(allrgb), 1, paste,collapse="$$") 
brew10rgb[,1] 
fltr <- allrgb[1,]==141 
allrgb[,fltr] 
fltr <- allrgb[2,]==211 
allrgb[,fltr] 

Có cách nào để chọn tên màu tốt cho bảng màu định tính trong R hoặc để ánh xạ các màu RColorBrewer này với màu hiện có không?

Trả lời

10

Xem điều này có hữu ích không. (Đây là một khoảng cách LI trên không gian rgb):

col.dist <- function(inp, comp) sum(abs(inp - col2rgb(comp))) 

colors()[ apply(col2rgb(brew10), 2, 
      function(z) which.min(sapply(colors(), 
          function(x) col.dist(inp=z, comp=x)))) ] 
#----------- 
[1] "paleturquoise3" "moccasin"  "lightsteelblue" "salmon" 
[5] "lightskyblue3" "sandybrown"  "darkolivegreen2" "thistle2" 
[9] "gray85"   "orchid3" 

Hình như nó có thể đã thành công tìm kiếm tại địa chỉ:

display.brewer.pal(10,"Set3") 

enter image description here (Mặc dù tôi chưa bao giờ thấy một cây kế đó màu sắc, và tôi sẽ phải suy nghĩ số 7 được nhiều hơn một "lightolive" hơn là một "darkolive".) Bạn sẽ nhận được phản ứng nhanh hơn, mặc dù điều này dường như chấp nhận được, nếu bạn thực hiện cuộc gọi đến màu sắc một lần và lưu trữ ma trận đó.

+1

+1 cho bình luận màu – Gregor

Các vấn đề liên quan