Posso trovare una soluzione per i seguenti problemi. Gradirei molto aiuto!Le barre in geom_bar hanno larghezze indesiderate diverse quando si utilizza facet_wrap
Il seguente codice produce i grafici a barre utilizzando il facet. Tuttavia, a causa dello "spazio extra" ggplot2 ha in alcuni gruppi rende le barre molto più larghe, anche se specifichi una larghezza di 0.1 o simile. Lo trovo molto fastidioso dal momento che lo fa apparire molto poco professionale. Voglio che tutte le barre abbiano lo stesso aspetto (eccetto per il riempimento). Spero che qualcuno possa dirmi come risolvere questo problema.
In secondo luogo, come posso riordinare le diverse classi nelle finestre delle faccette in modo che l'ordine sia sempre C1, C2 ... C5, M, F, Tutti ove applicabile. L'ho provato ordinando i livelli del fattore, ma dal momento che non tutte le classi sono presenti in ogni parte del grafico non ha funzionato, o almeno presumo che sia stata la ragione.
In terzo luogo, come è possibile ridurre lo spazio tra le barre? In modo che l'intero grafico sia più compresso. Anche se riduco l'immagine per l'esportazione, R ridimensiona le barre più piccole ma gli spazi tra le barre sono ancora enormi.
Apprezzerei il feedback per una di quelle risposte!
I miei dati: http://pastebin.com/embed_iframe.php?i=kNVnmcR1
My Code:
library(dplyr)
library(gdata)
library(ggplot2)
library(directlabels)
library(scales)
all<-read.xls('all_auto_visual_c.xls')
all$station<-as.factor(all$station)
#all$group.new<-factor(all$group, levels=c('C. hyperboreus','C. glacialis','Special Calanus','M. longa','Pseudocalanus sp.','Copepoda'))
allp <- ggplot(data = all, aes(x=shortname2, y=perc_correct, group=group,fill=sample_size)) +
geom_bar(aes(fill=sample_size),stat="identity", position="dodge", width=0.1, colour="NA") + scale_fill_gradient("Sample size (n)",low="lightblue",high="navyblue")+
facet_wrap(group~station,ncol=2,scales="free_x")+
xlab("Species and stages") + ylab("Automatic identification and visual validation concur (%)") +
ggtitle("Visual validation of predictions") +
theme_bw() +
theme(plot.title = element_text(lineheight=.8, face="bold", size=20,vjust=1), axis.text.x = element_text(colour="grey20",size=12,angle=0,hjust=.5,vjust=.5,face="bold"), axis.text.y = element_text(colour="grey20",size=12,angle=0,hjust=1,vjust=0,face="bold"), axis.title.x = element_text(colour="grey20",size=15,angle=0,hjust=.5,vjust=0,face="bold"), axis.title.y = element_text(colour="grey20",size=15,angle=90,hjust=.5,vjust=1,face="bold"),legend.position="none", strip.text.x = element_text(size = 12, face="bold", colour = "black", angle = 0), strip.text.y = element_text(size = 12, face="bold", colour = "black"))
allp
#ggsave(allp, file="auto_visual_stackover.jpeg", height= 11, width= 8.5, dpi= 400,)
Il grafico corrente che ha bisogno di un po 'di fissaggio:
Grazie mille!
1. sarà massima con 'geom_bar',' width' viene interpretata come una percentuale della distanza tra barre adiacenti. Forse usa 'geom_segment', quindi' size' sarà interpretato come assoluto. Per 2, riordinare i livelli fattoriali è il modo per farlo. Per 3, aumenta 'width', lo hai impostato a 0.1, quindi stai dicendo a ggplot di usare solo il 10% dello spazio (o usa' geom_segment'). – Gregor
Grazie! Lo esaminerò. Una domanda riguardante i livelli dei fattori. Posso mettere tutte le classi (C1 .... C2 e 1 ecc.) In un fattore di livello anche se non di tutte sono presenti nelle stesse sfaccettature? –