2013-03-25 22 views
5

在我的圖中,我有兩個相交的多邊形,一個是彩色的,一個是陰影線。 在圖例中,我希望兩個多邊形和十字路口陣列能正確表示。 以下是我有:帶有顏色填充和底紋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

是否有可能改變圖例的邊框顏色爲B到紅色和紅色添加陰影線爲AB符號?

回答

10

您應該添加參數border=legend()改變小方塊的邊框顏色,然後又添加調用legend()疊加底紋AB箱與你的顏色。在第二行legend()行I中,將AB設爲density=爲10,並將fill=更改爲紅色。

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

偉大的作品,謝謝! – Sophia 2013-03-25 15:10:23

+0

奇怪的是,如果'bty'設置爲「o」(=默認值),則AB圖例框的灰色背景顏色將消失。 – Rob 2014-04-11 08:45:51

+1

@Rob如果設置bty =「o」,則繪製帶有白色填充的圖例框,因此您不再看到上一個圖例。在傳說()的第二個調用中添加bg = NA以使背景透明。 – 2014-04-11 08:55:08