2016-04-03 5 views
0

Ich habe eine gruppierte BarPlot produzierte ggplot in R mit dem folgenden Codedie Xlim numerischen Wert verursachen Fehler ggplot R Ändern

ggplot(mTogether, aes(x = USuniquNegR, y = value, fill = variable)) + 
geom_bar(stat = "identity", position = "dodge") + 
scale_fill_discrete(name = "Area", 
        labels = c("Everywhere", "New York")) + 
xlab("Reasons") + 
ylab("Proportion of total complaints") + 
coord_flip() + 
ggtitle("Comparison between NY and all areas") 

mTogether erstellt wird mit dem folgenden Code

mTogether <- melt(together, id.vars = 'USuniquNegR') 

unter Verwendung der Daten Frame zusammen besteht aus

 USperReasons  USperReasonsNY     USuniquNegR 
1 0.198343304187759 0.191304347826087     Late Flight 
2  0.35987114588127 0.321739130434783  Customer Service Issue 
3 0.0667280257708237 0.11304347826087    Lost Luggage 
4 0.0547630004601933 0.00869565217391304  Flight Booking Problems 
5 0.109065807639208 0.121739130434783     Can't Tell 
6 0.00460193281178095     0    Damaged Luggage 
7 0.0846755637367694 0.0782608695652174   Cancelled Flight 
8 0.0455591348366314 0.0521739130434783     Bad Flight 
9 0.0225494707777266 0.0347826086956522     longlines 
10 0.0538426138978371 0.0782608695652174 Flight Attendant Complaints 

Zusammen kann durch die folgenden generiert werden

g
together<-data.frame(cbind(USperReasons,USperReasonsNY,USuniquNegR)) 

wo

USperReasons <- c(0.19834,0.35987,.06672,0.05476,0.10906,.00460,.08467,0.04555,0.02254,0.05384) 

USperReasonsNY <- c(0.191304348,0.321739130,0.113043478,0.008695652,0.121739130,0.000000000,0.078260870,0.05217391,0.034782609,0.078260870) 

USuniquNegR <- c("Late Flight","Customer Service Issue","Lost Luggage","Flight Booking Problems","Can't Tell","Damaged Luggage","Cancelled Flight","Bad Flight","longlines","Flight Attendant Complaints") 

Das Problem ist, wenn ich ändern Xlim des ggplot versuchen Sie es mit

+ xlim(0, 1) 

Ich scheine nur einen Fehler zu erhalten: Discrete Wert auf kontinuierliche Skala geliefert Ich kann nicht verstehen, warum dies passiert, aber ich muss es lösen, weil die X-Achse derzeit unter 0 beginnt und sehr stark gepackt ist: image of ggplot output

+0

Wird xlim() vor oder nach dem coord_flip() ausgeführt? Versuchen Sie die Einstellung ylim() –

+0

Bitte fügen Sie ein Stück Code hinzu, um das data.frame 'zusammen' zu generieren, um ein funktionierendes Beispiel zu haben. – Uwe

+0

Ob ich xlim (0,1) oder ylim (0,1) befor oder nach dem coord_flip() bekomme bekomme ich einen Fehler –

Antwort

1

Sie müssen die cbind von

together<-data.frame(cbind(USperReasons,USperReasonsNY,USuniquNegR)) 

entfernen, weil str(together) sagt, dass alle drei Spalten Faktoren sind.

Mit

together <- data.frame(USperReasons, USperReasonsNY, USuniquNegR) 

die Handlung scheint mir vernünftig (ohne ylim oder xlim verwenden).

enter image description here

So, das war der Fehler nicht innerhalb ggplot2 sondern in Datenaufbereitung. Bitte geben Sie daher ein vollständiges Arbeitsbeispiel an, das kopiert, eingefügt und ausgeführt werden kann, wenn Sie das nächste Mal eine Frage stellen. Vielen Dank.

2

Das Problem besteht darin, dass Sie Ihre Spaltenvektoren zusammen binden, wodurch die Zahlen in Zeichen umgewandelt werden. Fix das und der Rest sollte sich selbst reparieren.

together<-data.frame(USperReasons,USperReasonsNY,USuniquNegR)