ggplot2 thème sans axes ou grille

J'essaie de faire un complot sans information au-delà des données. Pas d'axes; pas de grille; pas de titre; juste l'intrigue.

Mais je continue à avoir des marges et un rembourrage supplémentaires que je ne peux pas supprimer.

library(ggplot2)
library(grid)

theme_bare <- theme(
  axis.line = element_blank(), 
  axis.text.x = element_blank(), 
  axis.text.y = element_blank(),
  axis.ticks = element_blank(), 
  axis.title.x = element_blank(), 
  axis.title.y = element_blank(), 
  #axis.ticks.length = unit(0, "lines"), # Error 
  axis.ticks.margin = unit(c(0,0,0,0), "lines"), 
  legend.position = "none", 
  panel.background = element_rect(fill = "gray"), 
  panel.border = element_blank(), 
  panel.grid.major = element_blank(), 
  panel.grid.minor = element_blank(), 
  panel.margin = unit(c(0,0,0,0), "lines"), 
  plot.background = element_rect(fill = "blue"),
  plot.margin = unit(c(0,0,0,0), "lines")
)

ggplot() + 
  geom_area (data=economics, aes(x = date, y = unemploy), linetype=0) +
  theme_bare

Produit cette image: parcelle

Ce que je veux, c'est ceci: parcelle idéal

Je n'arrive pas à comprendre comment se débarrasser du bleu et rendre le gris foncé affleurant avec les bords.

Quelqu'un pourrait-il offrir un conseil?

27
demandé sur sharoz 2013-01-14 08:17:02

3 réponses

Voici la façon de tracer uniquement la région du panneau:

p <- ggplot() + geom_area (data=economics, aes(x = date, y = unemploy), linetype=0) +
  scale_x_date(expand = c(0,0)) + scale_y_continuous(expand = c(0,0)) +
  theme(line = element_blank(),
        text = element_blank(),
        title = element_blank())

gt <- ggplot_gtable(ggplot_build(p))
ge <- subset(gt$layout, name == "panel")

grid.draw(gt[ge$t:ge$b, ge$l:ge$r])

entrez la description de l'image ici

28
répondu kohske 2017-06-21 05:05:33

De ggplot2_2.0.0 vous pouvez utiliser theme_void:

ggplot() + 
  geom_area(data = economics, aes(x = date, y = unemploy), linetype = 0) +
  theme_void()

entrez la description de l'image ici

17
répondu Henrik 2016-03-01 22:14:15

Essayez

last_plot() + theme(axis.ticks.length = unit(0.001, "mm")) + labs(x=NULL, y=NULL)

Vous pouvez déposer un bogue pour la longueur de la tique 0.

10
répondu baptiste 2013-01-14 07:53:16