2012-01-05 58 views

Trả lời

15

Điều này có thể đạt được bằng cách suy nghĩ về cốt truyện hơi khác với mô tả của bạn. Về cơ bản, bạn muốn vẽ một hình chữ nhật màu giữa các vị trí mong muốn trên trục x, làm đầy toàn bộ phạm vi giới hạn trục y. Điều này có thể đạt được bằng cách sử dụng rect() và lưu ý cách trong ví dụ bên dưới, tôi lấy tọa độ của người dùng (usr) của ô hiện tại để cung cấp cho tôi giới hạn trên trục y và chúng tôi vượt ra ngoài các giới hạn này để đảm bảo phạm vi đầy đủ được bao hàm trong cốt truyện.

plot(1:10, 1:10, type = "n", axes = FALSE) ## no axes 
lim <- par("usr") 
rect(2, lim[3]-1, 4, lim[4]+1, border = "red", col = "red") 
axis(1) ## add axes back 
axis(2) 
box() ## and the plot frame 

rect() có thể rút ra một chuỗi các hình chữ nhật nếu chúng tôi cung cấp một vector của các tọa độ, và nó có thể dễ dàng xử lý các trường hợp đối với x tùy ý, y tọa độ của tiền thưởng của bạn, nhưng đối với sau này nó là dễ dàng hơn để tránh những sai lầm nếu bạn bắt đầu với một véc tơ tọa độ X và một cho Y tọa độ như sau:

X <- c(1,3) 
Y <- c(2,4) 
plot(1:10, 1:10, type = "n", axes = FALSE) ## no axes 
lim <- par("usr") 
rect(X[1], Y[1], X[2], Y[2], border = "red", col = "red") 
axis(1) ## add axes back 
axis(2) 
box() ## and the plot frame 

bạn có thể chỉ là một cách dễ dàng có dữ liệu khi bạn có nó trong tiền thưởng:

botleft <- c(1,2) 
topright <- c(3,4) 
plot(1:10, 1:10, type = "n", axes = FALSE) ## no axes 
lim <- par("usr") 
rect(botleft[1], botleft[2], topright[1], topright[2], border = "red", 
    col = "red") 
axis(1) ## add axes back 
axis(2) 
box() ## and the plot frame 
+3

Bạn cũng có thể sử dụng 'đa giác' để tô bóng các vùng phức tạp hơn. –

+3

đối với một số phương thức 'cốt truyện' ít nhất, bạn cũng có thể bọc lệnh' rect' trong 'panel.first' – baptiste

+0

Điểm tốt cả! –

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