2009-12-26 72 views
36

¿Existe un comando para agregar fácilmente una cuadrícula en un diagrama R?Cuadrícula en un gráfico R

+1

Quizás considere cambiar la respuesta aceptada a [este] (http://stackoverflow.com/a/42729195/680068)? – zx8754

+0

O mejor aún, use ggplot2 para trazar. Tiene muchos valores predeterminados realmente asombrosos (incluidas las cuadrículas, que se pueden personalizar) y tiene una gramática muy natural y pensada para asignar atributos estéticos a aspectos de tus gráficos en función de los datos con los que trabajas. Es th – metasoarous

Respuesta

11

Si no está utilizando un intervalo de marcas personalizadas, puede controlar la red y ejes parámetros directamente desde el comando plot():

plot(cumsum(rnorm(100)), type='l', panel.first=grid()) 

El plot.default() documentación proporciona más información sobre estos parámetros.

+0

Cuidado, no funciona si está utilizando el método de fórmula 'plot (x ~ y, panel.first = grid())' – rvezy

44

Ver help(grid) que trabaja con los gráficos estándar - breve ejemplo:

R> set.seed(42) 
R> plot(cumsum(rnorm(100)), type='l') 
R> grid() 

Los ggplot2 por defecto del paquete para mostrar las redes debido a su filosofía 'Gramática de gráficos'. Y lattice tiene una función panel.grid() que puede usar en funciones personalizadas del panel.

Por cierto, hay funciones de búsqueda de ayuda, como p. help.search("something") y hay un paquete completo llamado sos para hacer que las búsquedas en la web R sean más fructíferas.

+0

En los casos en que queremos una grilla en el fondo, consulte [debajo de la respuesta] (http://stackoverflow.com/a/42729195/680068). – zx8754

54

El comando de cuadrícula parece dibujar líneas de cuadrícula donde sea que se siente. Usualmente uso abline para poner las líneas exactamente donde las quiero. Por ejemplo,

abline(v=(seq(0,100,25)), col="lightgray", lty="dotted") 
abline(h=(seq(0,100,25)), col="lightgray", lty="dotted") 

¡Buena suerte!

+7

Eso es fantástico. 'grid()' necesita desesperadamente argumentos para ubicar la primera línea de la cuadrícula en cada eje. Este es un gran sustituto. – Hank

5

Estoy de acuerdo con cbare. Usa abline para dibujar líneas solo donde realmente lo necesites.

ejemplo de mi último código:

abline(v=c(39448, 39814), col="grey40") 
abline(h=c(-0.6, -0.4, -0.2, 0.2,0.4,0.6), col="grey10", lty="dotted") 

recordar que:

v es para las líneas verticales. h para horizontal.

explotar los comandos

lty para línea de puntos color para la línea de color claro

el fin de obtener "no rejilla pesada".

Cuestiones relacionadas