2016-07-13 3 views
0

Ich habe ein solches Problem. Wenn ich einen solchen Code verwenden:Werte auf der y-Achse verschwinden nach der Verwendung von scale_y

dat3 <- data.frame(
    oprocentowanie <- factor(proc), 
    składka <- factor(wektor_skladek)) 
dat3 

png(filename = "/home/nilcorc/Documents/Licencjat/Rubezpieczenie/plots/analiza_oprocentowania_skladka", 
    width = 600, height = 400) 
ggplot(data=dat3, aes(oprocentowanie, składka)) + 
    geom_bar(position="dodge", width=0.5, color="#6666FF",stat="identity",fill="#6666FF")+ 
    labs(title="Wrażliwość składki na stopę %") 
dev.off() 

bekomme ich ein Grundstück mit Float-Werte auf der Y-Achse, aber wenn ich hinzufügen

scale_y_discrete(breaks=c(0,1000,2000,3000,4000,5000,6000,7000,8000,9000) 

alle Werte auf der Y-Achse verschwinden und bekomme ich nur ein Grundstück wo ich nicht weiß, wie groß die Bars sind. Kannst du mir helfen?

Ich möchte Werte auf der Y-Achse 0-9000 gehen erhalten, indem 1000

Datenrahmen:

oprocentowanie....factor.proc. skladki....factor.floor.wektor_skladek.. 
1        0%          8216 
2       0.5%          7053 
3        1%          6053 
4       1.5%          5195 
5        2%          4458 
6       2.5%          3826 
7        3%          3286 
8       3.5%          2825 
9        4%          2431 

Die Handlung ohne Skala: Without numbers

Das Grundstück mit Maßstab: With numbers

Und der dput:

structure(list(oprocentowanie....factor.proc. = structure(1:9, .Label = c("0%", 
"0.5%", "1%", "1.5%", "2%", "2.5%", "3%", "3.5%", "4%"), class = "factor"), 
    skladki....factor..wektor_skladek.. = structure(c(9L, 8L, 
    7L, 6L, 5L, 4L, 3L, 2L, 1L), .Label = c("2431.59459253388", 
    "2825.48111629658", "3286.93674975244", "3826.96130538247", 
    "4458.17016548586", "5195.00332453903", "6053.96171257516", 
    "7053.8763920252", "8216.21779413142"), class = "factor")), .Names = c("oprocentowanie....factor.proc.", 
"skladki....factor..wektor_skladek.."), row.names = c(NA, -9L 
), class = "data.frame") 
+0

können Sie bitte senden Sie uns eine [MWE] (http://stackoverflow.com/help/mcve)? Ohne zu wissen, wie Ihre Daten aussehen oder in der Lage sind, den Fehler neu zu erstellen, ist es fast unmöglich, Ihnen zu helfen. Können Sie die Versionen zumindest mit und ohne Werte auf der y-Achse posten? Meine erste Vermutung ist, dass Ihre Bars nicht 1000 Einheiten groß sind. –

Antwort

2

Versuchen Sie, die składka Spalte numerisch anstelle eines Faktors zu machen. Beachten Sie, dass die Schritte zwischen den einzelnen Balken alle die gleiche Größe haben, auch wenn die Labels um mehr als das auseinander gehen? (z. B. 2431 bis 2825 ist die gleiche Entfernung wie 7053 bis 8216). Das liegt daran, dass jedes nur die nächste Markierung in den Ebenen Ihres Faktors ist. Also, wenn Sie scale_y_discrete(breaks=1:9) hinzufügen Sie (richtig) erhalten die Etiketten 1 bis 9.

Diese Arbeit sollte:

ggplot(data=dat3, aes(oprocentowanie, as.numeric(as.character(składka)))) + 
    geom_bar(position="dodge", width=0.5, color="#6666FF",stat="identity",fill="#6666FF")+ 
    labs(title="Wrażliwość składki na stopę %") + 
    scale_y_continuous(breaks=c(0,1000,2000,3000,4000,5000,6000,7000,8000,9000) 

Es wäre hilfreich, wenn Sie Code schreiben können, die wir direkt ausführen können, zB mit dem Ausgang des dput(dat3)

(Herausgegeben scale_y_continuous statt scale_y_discrete zu verwenden)

+0

Leider gibt es immer noch das gleiche Ergebnis. – Novsar

+0

Meine Vermutung ist, dass wenn Sie ohne die Skala planen, meine erste Version 1: 9 geben würde. Ich habe den 'as.character'-Teil vergessen, der notwendig war, um von Zeichen zurück zu numeric zu konvertieren (und es nicht überprüfen konnte). Es wäre wahrscheinlich am besten, es nicht zu einem Faktor zu machen. Versuchen Sie es mit dem Zusatz. –

+0

Es ist immer noch das gleiche mit dem Zusatz. Vielleicht gibt es eine andere Möglichkeit, die Skala zu ändern? Ich suchte im Internet nach Hilfe, aber wenn ich Grenzen hinzufüge oder etwas, verschwindet auch die Achse. – Novsar