2011-11-17 35 views
6

Tôi cần tạo bản đồ nhiệt tùy chỉnh như minh họa trong hình đính kèm. Nó khác với bản đồ nhiệt thông thường theo nghĩa là tôi muốn nó sử dụng hai gradient màu, một cho các giá trị dương và một cho giá trị âm.Bản đồ nhiệt tùy chỉnh trong R

enter image description here

Như thể hiện trong hình đính kèm, tôi muốn một màu sắc để mô tả cường độ của các giá trị mà là dương tính (hoặc lý tưởng trên một ngưỡng nhất định) và màu sắc khác để miêu tả cường độ của các giá trị mà là âm (cách khác, bên dưới ngưỡng).

Một nền nhỏ: Tôi có bộ lựa chọn nhị phân, một tùy chọn sẽ được ưu tiên cho một phạm vi dữ liệu nhất định trong khi tùy chọn kia được ưu tiên cho dữ liệu còn lại. Tôi muốn cung cấp một trợ giúp trực quan sẽ mô tả lựa chọn/lựa chọn nào tốt hơn cho các kết hợp dữ liệu khác nhau nhưng tôi muốn viện trợ trực quan cũng cung cấp quy mô "tốt hơn" mà một tùy chọn có trên một đối tượng khác cho trường hợp đó. Vì vậy, màu sắc sẽ cho biết tùy chọn để chọn trong khi cường độ của màu sắc với cho biết tốt hơn là lựa chọn đó so với khác.

+0

này được gọi là một bảng màu phân tách, và có rất nhiều trong số họ trong gói RColorBrewer. Miễn là nó được căn giữa đúng trên 0, thì đó là điều đúng đắn cần làm. – Spacedman

Trả lời

9

đây là một ví dụ sử dụng ggplot2:

# sample data 
df <- data.frame(expand.grid(x = 1:4, y = 1:4), v = runif(16, -10, 10)) 

# plot 
ggplot(df, aes(x, y, fill = v, label = sprintf("%.1f", v))) + 
    geom_tile() + geom_text() + 
    scale_fill_gradient2(low = "blue", high = "red") 

enter image description here

+0

Cảm ơn, công trình này. – Arjun

+0

Đây là một đoạn mã thực sự tuyệt vời và hữu ích, cảm ơn bạn! – mfk534

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