Można to osiągnąć, myśląc o fabule nieco inaczej niż opis. Zasadniczo chcesz narysować kolorowy prostokąt między żądanymi pozycjami na osi X, wypełniając cały zakres limitu osi Y. Można to osiągnąć za pomocą rect()
i zanotować, w poniższym przykładzie, chwycić użytkownika (usr
) współrzędne bieżącego wykresu, aby dać mi ograniczenia na osi Y i abyśmy wykroczyli poza te ograniczenia, aby zapewnić pełny zakres jest objęty działką.
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()
można narysować ciąg prostokątów czy zapewniamy wektor współrzędnych i można go łatwo obsługiwać sprawy dla dowolnego x, y współrzędne premii, ale ten ostatni jest łatwiej uniknąć błędów jeśli zaczniesz z wektorem współrzędnych X i Y, inny dla współrzędnych jak poniżej:
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
Mogłeś równie dobrze mieć dane, jak masz go w premii:
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
Możesz także użyć 'wieloboku', aby ocieniać bardziej skomplikowane regiony. –
dla niektórych metod 'plot' co najmniej, możesz również zawrzeć wywołanie' rect' w 'panel.first' – baptiste
Dobre punkty zarówno! –