2014-04-07 20 views
7

Tôi vẽ đồ thị như sau. Mã tôi đã sử dụng để tạo ra huyền thoại làCách thu nhỏ lề bên trong của hộp chú thích

legend(4, 20, c("Placebo", "Progabide"), lty=1:2, pch=c(1,16), col=1:2, cex=0.8) 

enter image description here

Vấn đề là lề bên trong (theo hướng thẳng đứng) là quá lớn và tôi muốn giảm bớt nó. Tôi đoán một cách khác để thu hẹp lề bên trong là giảm "cex" hơn nữa. Nhưng sau đó văn bản trong hộp cũng trở nên nhỏ hơn. Có cách nào để giảm hộp nhưng không làm giảm nội dung của nó.

+1

Bạn có thể ngăn chặn hộp với lập luận 'BTY =' n'' và mưu của riêng bạn với 'rect()'. – jbaums

Trả lời

9

Dưới đây là ví dụ về cách thực hiện việc này với rect, như @jbaums đề cập đến. Bằng cách sử dụng thông tin trực tiếp của chú giải mặc định, bạn có thể đảm bảo vị trí hộp là chính xác.

plot(x=1:10,y=1:10+rnorm(10), ylim=c(0,11)) 

# draw default box and store size of default rect in 'a' 
# disable this default rect by adding plot=F to legend() 
a=legend(x=1,y=9, c("old box", "new box"), lty=1, col=2:1, cex=0.8, y.intersp=0.8,box.col=2)#,plot=F) 

# box size reduced by factor 0.75 
a=a$rect 
mid = a$top - 0.5*a$h 
reduction = 0.75 

# draw new box 
rect(xleft=a$left, ytop=mid+0.5*reduction*a$h, xright=a$left+a$w, ybottom=mid-0.5*reduction*a$h) 
# add legend items to new box 
legend(x=1,y=9, c("old box", "new box"), lty=1, col=2:1, cex=0.8, y.intersp=0.8, bty='n') 

enter image description here

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