2016-07-31 32 views
0

Ich versuche, ein Balkendiagramm mit diesem R-Code zu machen:R: Wie y Maßstab zu beheben, um eine sinnvolle Werte im Vergleich zu seiner Höhe zu erhalten?

library(ggplot2) 
library(dplyr) 
library(scales) 
#q2 
d=data.frame(
rbind(as.data.frame(table(data$q2_a))[2,2], 
as.data.frame(table(data$q2_b))[2,2], 
as.data.frame(table(data$q2_c))[2,2], 
as.data.frame(table(data$q2_d))[2,2], 
as.data.frame(table(data$q2_e))[2,2], 
as.data.frame(table(data$q2_f))[2,2], 
as.data.frame(table(data$q2_g))[2,2], 
as.data.frame(table(data$q2_h))[2,2])) 
d[is.na(d)] <-0 
colnames(d)="Freq" 


df=data.frame(Pourcentage=percent(d$Freq/61),Opération=c("Dépot", 
"Virement national","Virement \n international", 
"Versement","Retrait","Lettre de crédit","Encaissement chèque \n 
en devises","Autres")) 
ggplot(data=df, aes(x=Opération, y=Pourcentage, fill=Opération)) + 
geom_bar(stat="identity",width=0.5)+ 
geom_text(aes(label=Pourcentage), vjust=1.6, color="white", size=3.5)+ 
theme_minimal()+ 
ggtitle("Quelle est la nature de vos opérations avec la Poste 
Tunisienne ?")+scale_x_discrete(limits = df$Opération) 

jedoch meine y-Skala extrem aus irgendeinem Grunde durcheinander gewürfelt. aber ich weiß nicht, wie ich es beheben soll.

 the output

+0

Es ist nicht reproduzierbar für mich . Aber es scheint, dass deine y-Variable diskret ist. Stellen Sie Ihre Frage so auf, dass jeder Ihre Daten reproduzieren kann (z. B. mit 'dput'). – Alex

Antwort

2

Das Problem ist, dass Sie die Zahlen formatiert Zeichenprozentsätze in den Datenrahmen sind Umwandlung, so dass die Daten werden nicht numerisch. Stattdessen werden die Daten als numerische Fraktionen halten und scales::percent() verwenden, wenn die Waage und Etiketten in ggplot2 erstellen, dh die geom_text Aufruf ändern:

geom_text(aes(label = percent(Pourcentage), ...) 

und fügen:

scale_y_continuous(labels = percent) 
+0

Es funktioniert jetzt .. Vielen Dank –