2013-03-25 52 views
5

Trong cốt truyện của tôi, tôi có hai đa giác giao nhau, một màu và một với các đường tô bóng. Trong truyền thuyết, tôi muốn hai đa giác và mảng giao nhau được biểu diễn chính xác. Dưới đây là những gì tôi có:Chú thích với các đường tô màu và tô bóng trong Base R

plot(1:4, 1:4, type="n", xaxt="n", xlab="", yaxt="n", ylab="") 
polygon(c(2,4,2), c(1,3,3), col="gray") 
polygon(c(3,3,1), c(1,3,2), col="red", density=10) 
legend("topleft", legend=c("A", "B", "AB"), fill=c("gray", "red", "gray"), 
      density=c(NA, 10, NA), bty="n") 

Intersecting polygons, legend problem

Có thể thay đổi màu đường viền trong truyền thuyết cho B sang màu đỏ và thêm dòng bóng màu đỏ để biểu tượng cho AB?

Trả lời

10

Bạn nên thêm đối số border= vào legend() để thay đổi màu đường viền của các hộp nhỏ và sau đó thêm một cuộc gọi khác tới legend() để che phủ bóng cho hộp AB bằng màu của bạn. Trong dòng thứ hai legend() tôi đặt density= cho AB đến 10 và cũng thay đổi fill= thành màu đỏ cho cùng một hộp.

plot(1:4, 1:4, type="n", xaxt="n", xlab="", yaxt="n", ylab="") 
polygon(c(2,4,2), c(1,3,3), col="gray") 
polygon(c(3,3,1), c(1,3,2), col="red", density=10) 
legend("topleft", legend=c("A", "B", "AB"), fill=c("gray", "red", "gray"), 
     density=c(NA, 10, NA), bty="n",border=c("black", "red", "black")) 
legend("topleft", legend=c("A", "B", "AB"), fill=c("gray", "red", "red"), 
     density=c(NA, 10, 10), bty="n",border=c("black", "red", "black")) 

enter image description here

+0

Các công trình lớn, cảm ơn bạn! – Sophia

+0

Lạ, nếu 'bty' được đặt thành" o "(= mặc định), màu nền xám của hộp chú giải AB biến mất. – Rob

+1

@Rob Nếu bạn đặt bty = "o" thì hộp chú giải có tô màu trắng được vẽ và vì vậy bạn không thấy chú thích trước nữa. Thêm cũng bg = NA vào cuộc gọi thứ hai của chú giải() để làm nền trong suốt. –

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