2013-06-06 34 views
9

Tôi cần sử dụng phụ/superscripts trong nhãn chú giải. Tuy nhiên, nếu tôi sử dụng tham số label của các tỷ lệ tương ứng, màu và tỷ lệ lấp đầy không được kết hợp nữa.Kết hợp điền và chú thích màu khi sử dụng các nhãn biểu thức

Có cách nào để khắc phục sự cố này hoặc cách khác để sử dụng phụ/siêu chữ trong truyền thuyết?

DF <- data.frame(x=1:10,y=(1:10)^2, 
       ymax=(1:10)^2.2, 
       ymin=(1:10)^1.8, 
       fac=rep(c("a","b"),each=5)) 

library(ggplot2) 
p <- ggplot(DF,aes(x=x,y=y,ymin=ymin,ymax=ymax,colour=fac,fill=fac)) + 
    geom_line() + 
    geom_ribbon(alpha=0.5) 

print(p) 

enter image description here

p + scale_color_discrete(labels=c("a"=expression(a[{foo}]), 
            "b"=expression(b[{bar}]))) + 
    scale_fill_discrete(labels=c("a"=expression(a[{foo}]), 
            "b"=expression(b[{bar}]))) 

enter image description here

Trả lời

6

Không giải pháp tao nhã như vậy là để loại bỏ fill huyền thoại và sau đó sử dụng override.aes= trong guides() chức năng cho color= huyền thoại. Đối với truyền thuyết này, chúng tôi có thể đặt giá trị fill= của riêng mình. Chỉ có vấn đề là bạn phải biết tên màu. Tôi nghĩ điều này sẽ dễ dàng hơn với scale_color_manual() vì bạn đã cung cấp các giá trị màu của riêng mình.

p + scale_color_discrete(labels=c("a"=expression(a[{foo}]), 
            "b"=expression(b[{bar}]))) + 
    scale_fill_discrete(guide="none")+ 
    guides(color=guide_legend(override.aes=list(fill=c("#F8766D","#00BFC4")))) 

enter image description here

+0

vĩ đại. Bạn có thể sử dụng 'n <- 2; hcl (h = seq (15, 375-360/n, chiều dài = n) %% 360, c = 100, l = 65) 'để lấy các màu [(nguồn)] (http://osdir.com/ml /ggplot2/2011-08/msg00223.html). – Roland

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