Saltar al contenido

Elimine la cuadrícula, el color de fondo y los bordes superior y derecho de ggplot2

Solución:

EDITAR Ignore esta respuesta. Ahora hay mejores respuestas. Vea los comentarios. Usar + theme_classic()

EDITAR

Esta es una mejor versión. El error mencionado a continuación en la publicación original permanece (creo). Pero la línea del eje se dibuja debajo del panel. Por lo tanto, elimine tanto el panel.border y panel.background para ver las líneas del eje.

library(ggplot2)
a <- seq(1,20)
b <- a^0.25
df <- as.data.frame(cbind(a,b))

ggplot(df, aes(x = a, y = b)) + geom_point() +
  theme_bw() +
  theme(axis.line = element_line(colour = "black"),
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.border = element_blank(),
    panel.background = element_blank()) 

ingrese la descripción de la imagen aquí

Publicación original
Esto se acerca. Hubo un error con axis.line no funciona en el eje y (ver aquí), que parece no estar arreglado todavía. Por lo tanto, después de quitar el borde del panel, el eje y debe dibujarse por separado usando geom_vline.

library(ggplot2)
library(grid)

a <- seq(1,20)
b <- a^0.25
df <- as.data.frame(cbind(a,b))

p = ggplot(df, aes(x = a, y = b)) + geom_point() +
   scale_y_continuous(expand = c(0,0)) +
   scale_x_continuous(expand = c(0,0)) +
   theme_bw() +
   opts(axis.line = theme_segment(colour = "black"),
        panel.grid.major = theme_blank(),
        panel.grid.minor = theme_blank(),
        panel.border = theme_blank()) +
    geom_vline(xintercept = 0)
p

Los puntos extremos están recortados, pero el recorte se puede deshacer usando el código de baptiste.

gt <- ggplot_gtable(ggplot_build(p))
gt$layout$clip[gt$layout$name=="panel"] <- "off"
grid.draw(gt)

ingrese la descripción de la imagen aquí

O usar limits para mover los límites del panel.

ggplot(df, aes(x = a, y = b)) + geom_point() +
   xlim(0,22) +  ylim(.95, 2.1) +
   scale_x_continuous(expand = c(0,0), limits = c(0,22)) +
   scale_y_continuous(expand = c(0,0), limits = c(.95, 2.2)) +   
   theme_bw() +
   opts(axis.line = theme_segment(colour = "black"),
        panel.grid.major = theme_blank(),
        panel.grid.minor = theme_blank(),
        panel.border = theme_blank()) +
    geom_vline(xintercept = 0)

Las actualizaciones recientes de ggplot (0.9.2+) han revisado la sintaxis de los temas. Más destacado, opts() ahora está en desuso, después de haber sido reemplazado por theme(). La respuesta de Sandy todavía (a partir de enero de 2012) generará un gráfico, pero hace que R lance un montón de advertencias.

Aquí está el código actualizado que refleja la sintaxis actual de ggplot:

library(ggplot2)
a <- seq(1,20)
b <- a^0.25
df <- as.data.frame(cbind(a,b))

#base ggplot object
p <- ggplot(df, aes(x = a, y = b))

p +
  #plots the points
  geom_point() +

  #theme with white background
  theme_bw() +

  #eliminates background, gridlines, and chart border
  theme(
    plot.background = element_blank(),
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.border = element_blank()
  ) +

  #draws x and y axis line
  theme(axis.line = element_line(color="black"))

genera:

salida de la trama

Una alternativa a theme_classic() es el tema que viene con el paquete cowplot, theme_cowplot() (cargado automáticamente con el paquete). Se parece a theme_classic(), con algunas sutiles diferencias. Lo más importante es que los tamaños de etiqueta predeterminados son más grandes, por lo que las cifras resultantes se pueden utilizar en publicaciones sin necesidad de realizar más modificaciones (en particular, si las guarda con save_plot() en lugar de ggsave()). Además, el fondo es transparente, no blanco, lo que puede resultar útil si desea editar la figura en Illustrator. Finalmente, las parcelas facetadas se ven mejor, en mi opinión.

Ejemplo:

library(cowplot)
a <- seq(1,20)
b <- a^0.25
df <- as.data.frame(cbind(a,b))

p <- ggplot(df, aes(x = a, y = b)) + geom_point()
save_plot('plot.png', p) # alternative to ggsave, with default settings that work well with the theme

Esto es lo que el archivo plot.png producido por este código se ve así:
ingrese la descripción de la imagen aquí

Descargo de responsabilidad: soy el autor del paquete.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *