leyendas - ¿Cómo dibujo las líneas de la cuadrícula usando abline() que están detrás de los datos?
leyendas en r (4)
Cuando dibujo líneas de cuadrícula en una gráfica usando abline()
las líneas de cuadrícula se dibujan sobre los datos.
¿Hay alguna manera de dibujar las líneas abline()
detrás de los datos? Siento que esto se vería mejor.
Ejemplo:
x <- seq(0, 10)
y <- x
plot(x, y, col = ''red'', type = ''o'', lwd = 3, pch = 15)
abline(h = seq(0, 10, .5), col = ''lightgray'', lty = 3)
abline(v = seq(0, 10, .5), col = ''lightgray'', lty = 3)
La trama producida tiene las líneas grises de la cuadrícula sobre los datos (línea roja). Me gustaría que la línea roja esté encima de las líneas grises.
El panel.first
argumento del panel.first
de plot()
puede tomar una lista o un vector de funciones para que pueda colocar sus llamadas de abline()
allí.
plot(1:4, panel.first =
c(abline(h = 1:4, lty = 2, col = ''grey'')
,abline(v = 1:4, lty = 2, col = ''grey'')))
Otra forma de crear líneas de cuadrícula es establecer tck=1
al trazar o en la función del axis
(aún puede querer trazar los puntos usando points
después de crear las líneas de la cuadrícula.
Trace primero con type = "n" para establecer las coordenadas. Luego coloque las líneas de la cuadrícula, luego trace de nuevo con su tipo de diagrama regular:
plot(x, y, col = ''red'', type = ''n'', lwd = 3, pch = 15)
abline(h = seq(0, 10, .5), col = ''lightgray'', lty = 3)
abline(v = seq(0, 10, .5), col = ''lightgray'', lty = 3)
par(new=TRUE)
plot(x, y, col = ''red'', type = ''o'', lwd = 3, pch = 15)
Reconozco que siempre pensé que el nombre para ese parámetro par
era "al revés".
Use plot()
para configurar la ventana de trazado, pero use type = "n"
para no graficar ningún dato. Luego haga sus llamadas a abline()
, o use grid()
, y luego trace los datos usando cualquier función de bajo nivel que sea apropiada (aquí los points()
están bien).
x <- seq(0, 10)
y <- x
plot(x, y, type = "n")
abline(h = seq(0, 10, .5), col = ''lightgray'', lty = 3)
abline(v = seq(0, 10, .5), col = ''lightgray'', lty = 3)
points(x, y, col = ''red'', type = ''o'', lwd = 3, pch = 15)
o
## using `grid()`
plot(x, y, type = "n")
grid()
points(x, y, col = ''red'', type = ''o'', lwd = 3, pch = 15)
Consulte la ?grid
para obtener detalles sobre cómo especificar la cuadrícula según su versión de abline()
.