2013-01-08 26 views
8

Hiện tại, chú giải cốt truyện chạy trong phạm vi từ 0,5 đến -0,25, tôi muốn tăng từ 1 đến -1 với dấu ngắt sau mỗi khoảng 0,25. Làm thế nào tôi có thể làm điều đó.Tăng phạm vi chú giải trong geom_tile theo cách thủ công

Nếu tôi sử dụng scale_fill_continous(), nó ghi đè giá trị được điền trước đó của tôi là z. Vì vậy, giải pháp sẽ là

+ scale_fill_continuous (ngắt = seq (-1,1, bởi = 0,25), thấp = 'trắng', cao = 'steelblue')

nhưng có một lỗi nói rằng Error in unit(tic_pos.c, "mm") : 'x' and 'units' must have length > 0 Tôi đã thử với một ví dụ khác, trong đó tôi đã đề cập từ 0 đến 1, nhưng nó vẫn bắt đầu từ 0,555, tùy thuộc vào giá thầu CPC và min. giá trị của z

Chú thích phải được tăng theo thứ nguyên, sao cho màu sắc cũng phải tương ứng với nó, có nghĩa là thấp là -1 và cao là +1.

Toàn bộ ý tưởng, là các ô có giá trị khoảng -0,25 (ở giữa) không được trắng vì chúng không phải là thấp nhất, thấp nhất là -1, màu của -0,25 phải có màu xanh nhạt và không nên không quan trọng, nếu giá trị bên dưới được hiển thị trong biểu đồ hay không, vì giá trị sẽ cung cấp giới hạn tùy chỉnh.

Ví dụ Lô:

plot

Mã để tạo ra nó

pp <- function (n,r=4) { 
x <- seq(-r*pi, r*pi, len=n) 
df <- expand.grid(x=x, y=x) 
df$r <- sqrt(df$x^2 + df$y^2) 
df$z <- cos(df$r^2)*exp(-df$r/6) 
df 
} 
ggplot(pp(20),aes(x=x,y=y))+geom_tile(aes(fill=z)) 

Trả lời

17

Bạn cần phải xác định limits quy mô của bạn:

p <- ggplot(pp(20),aes(x=x,y=y))+geom_tile(aes(fill=z)) 

p + scale_fill_continuous(limits=c(-1, 1), breaks=seq(-1,1,by=0.25)) 

enter image description here

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