2013-03-25 23 views
5

Çizimde, biri renkli, diğeri gölgelendirme çizgileri olan iki kesişen çokgenim var. Göstergede iki çokgen ve kesişim dizisini doğru olarak temsil ediyorum.Temel dolgu ve renk gölgelendirme çizgileriyle ilgili Efsane 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

kırmızıya B efsanede sınır rengini değiştirmek ve AB için sembole kırmızı gölgeleme çizgilerini eklemek mümkün mü: İşte ben ne var?

cevap

10

Sen küçük kutuların sınır rengini değiştirmek ve sonra renk ile AB kutusuna gölgelendirme bindirmek için legend() için başka bir çağrı eklemek için legend() için argüman border= eklemek gerekir. İkinci legend() satırında, AB için 10 için density= ayarını yaptım ve aynı kutu için de kırmızıyı fill= olarak değiştirdim.

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

büyük İşleri, teşekkür ederim! – Sophia

+0

Tuhaf, "bty", "o" (= varsayılan) olarak ayarlanmışsa, AB efsanesi kutusunun gri arka plan rengi kaybolur. – Rob

+1

@Rob bty = "o" öğesini ayarlarsanız, beyaz dolgu içeren lejant kutusu çizilir ve böylece önceki efsaneyi artık görmezsiniz. Arka planı saydam yapmak için bg = NA'yı ikinci efsane çağrısı() öğesine ekleyin. –