2017-06-26 1 views
3

J'ai créé un graphique à barres à l'aide de ggplot. Mon cadre de données:Modifier la largeur de l'histogramme R

variable <- c(AFD, AFD, FC, FC, NDT, NDT) 
AOI<- c(R,Z,R,Z,R,Z) 
mean <- c(219,228,30,130,8381,40164) 
se <- c(5,5,1,4,367,1363) 

df <- data.frame(variable , AOI, mean, se) 

Ceci est mon code pour l'intrigue:

ggplot(data=Summary_RegBed_ZvsR_Hyp1_lang[Summary_RegBed_ZvsR_Hyp1_lang$variable == "FC", ], aes(x=variable, y=mean, fill=AOI)) + 
scale_x_discrete(labels = "Anzahl Fixationen")+ 
ylab("Absolute Anzahl")+ 
xlab("Anzahl Fixationen")+ 
scale_fill_grey(start = 0.35, end= 0.8, 
       name = "Area of Interest", 
       breaks=c("R", "Z"), 
       labels=c("Rand", "Zentrum"))+ 
geom_bar(stat="identity", position=position_dodge(), width = .6)+ 
geom_errorbar(aes(ymin=mean-se, ymax=mean+se), 
      width=.1,      
      position=position_dodge(.6))+ 
scale_y_continuous(limit=c(0,140), breaks = c(0,25, 50, 75, 100, 125))+ 
theme_bw() + 
theme(text=element_text(family="Times", face="bold", size=12))+ 
theme(axis.text.x=element_blank(), 
    axis.ticks.x=element_blank()) + 
geom_signif(annotation="***", y_position=140, xmin=0.85, xmax=1.15, tip_length=0.008) 

Ceci est l'intrigue résultant This is the resulting plot

Ma question est: Comment puis-je réduire l'espace entre les barres et l'axe des y et les barres et le bord droit de l'intrigue? J'ai besoin de tracer plusieurs parcelles les unes à côté des autres et cela ne fait que gaspiller mon espace. J'ai essayé d'utiliser scale_x_discrete avec des sauts ou des limites, mais rien de tout cela n'a fonctionné. Aucune suggestion? Merci d'avance!

+0

Ils sont déjà à côté eachother comment voulez-vous réduire l'espace? – Masoud

+0

Désolé, je ne me suis pas bien exprimé. Je ne veux pas réduire l'espace entre les barres, mais l'espace entre la barre de gauche et l'axe des y et l'espace entre la barre de droite et le bord droit de la parcelle. Je veux "rétrécir" l'axe des x. – StephieMall

+0

Veuillez lire [Comment faire un excellent exemple reproductible dans R?] (Https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). – Masoud

Répondre

1

Vous pouvez régler le expand à zéro (à droite et à gauche) pour y parvenir:

p + 
    scale_x_discrete(expand = c(0, 0)) 
+0

Merci pour votre réponse! Mais quand j'ajoute la commande expand à mon code, il en résulte toujours le même tracé que précédemment. – StephieMall

+0

@StephieMall fournir un exemple reproductible comme je l'ai dit dans les commentaires ci-dessous votre question afin que je puisse m'assurer que la solution fonctionne pour votre cas particulier. – Masoud