Je voudrais supprimer complètement les étiquettes des facettes pour créer une sorte d'effet sparkline, car pour le public, les étiquettes ne sont pas pertinentes, le mieux que je puisse trouver est:
library(MASS)
library(ggplot2)
qplot(week,y,data=bacteria,group=ID, geom=c('point','line'), xlab='', ylab='') +
facet_wrap(~ID) +
theme(strip.text.x = element_text(size=0))
Alors, puis-je me débarrasser complètement du strip.background (maintenant vide) pour laisser plus d'espace aux "sparklines"?
Ou bien existe-t-il un meilleur moyen d'obtenir cet effet "sparkline" pour un grand nombre de séries temporelles à valeur binaire comme celle-ci?
Pour ggplot v2.1.0 ou supérieur, utilisez element_blank()
pour supprimer les éléments indésirables:
library(MASS) # To get the data
library(ggplot2)
qplot(
week,
y,
data = bacteria,
group = ID,
geom = c('point', 'line'),
xlab = '',
ylab = ''
) +
facet_wrap(~ ID) +
theme(
strip.background = element_blank(),
strip.text.x = element_blank()
)
Dans ce cas, l'élément que vous essayez de supprimer s'appelle strip
.
Dans les anciennes versions de ggplot
(avant la v2.1.0), le texte de la bande occupe des lignes dans la disposition gtable.
element_blank
supprime le texte et l'arrière-plan, mais il ne supprime pas l'espace occupé par la ligne.
Ce code supprime ces lignes de la mise en page:
library(ggplot2)
library(grid)
p <- qplot(
week,
y,
data = bacteria,
group = ID,
geom = c('point', 'line'),
xlab = '',
ylab = ''
) +
facet_wrap(~ ID)
# Get the ggplot grob
gt <- ggplotGrob(p)
# Locate the tops of the plot panels
panels <- grep("panel", gt$layout$name)
top <- unique(gt$layout$t[panels])
# Remove the rows immediately above the plot panel
gt = gt[-(top-1), ]
# Draw it
grid.newpage()
grid.draw(gt)
J'utilise ggplot2 version 1 et les commandes requises ont changé. Au lieu de
ggplot() ... +
opts(strip.background = theme_blank(), strip.text.x = theme_blank())
vous utilisez maintenant
ggplot() ... +
theme(strip.background = element_blank(), strip.text = element_blank())
Pour plus de détails, voir http://docs.ggplot2.org/current/theme.html
La réponse mise à jour de Sandy semble bonne, mais a peut-être été rendue obsolète par les mises à jour de ggplot? D'après ce que je peux dire, le code suivant (une version simplifiée de la réponse originale de Sandy) reproduit le graphique original de Sean sans espace supplémentaire:
library(ggplot2)
library(grid)
qplot(week,y,data=bacteria,group=ID, geom=c('point','line'), xlab='', ylab='') +
facet_wrap(~ID) +
theme(strip.text.x = element_blank())
J'utilise ggplot 2.0.0.
Pour autant que je sache, la réponse de Sandy est correcte, mais je pense qu'il convient de mentionner qu'il semble y avoir une petite différence entre la largeur d'une parcelle sans facettes et la largeur d'une parcelle avec les facettes supprimées.
Ce n'est pas évident à moins que vous ne le cherchiez mais, si vous empilez des parcelles en utilisant les dispositions de fenêtre que Wickham recommande dans son livre, la différence devient apparente.