2016-01-06 9 views
7

Heute morgen habe ich auf R 3.2.3 (OSX 10.11.1) aufgerüstet. Meine ggplot2 Skripte von der Art haben folgende plötzlich aufgehört zu arbeiten:ggplot2 in R 3.2.3: Schichten gebrochen?

df <- data.frame(ind = c(20,35,45,55,70), dep = c(6,17,26,37,44)) 

Syntax 1:

ggplot()+ layer(data=df, mapping=aes(x=ind, y=dep), geom="point") 

"Error: Attempted to create layer with no stat." 

ggplot2 selbst gebrochen ist nicht da

Syntax 2:

ggplot(df, aes(x=ind, y=dep)) + geom_point() 

erzeugt das erwartete Diagramm. Syntax 1 erzeugt immer noch das erwartete Plot auf einer alten Maschine (R 2.15.3 OSX 10.5.8). Außerdem habe ich es erst heute Morgen vor dem R-Upgrade benutzt. Ich habe R3.2.3, ggplot2 und Abhängigkeiten gelöscht und neu geladen, aber das Problem bleibt bestehen. Ich mag Syntax 1, weil ich gerne Layer aus verschiedenen Datasets hinzufüge. Ich wäre dankbar für Gedanken.

+0

Haben die Maschinen haben die gleiche Version von ggplot2 gelten? – jbaums

+1

Die Maschinen haben nicht die gleiche Version von ggplot. Es ist denkbar, dass ggplot bei der Aktualisierung der R-Version auf Version 2.0 aktualisiert wurde. Hadley schreibt: "Ebenen sind jetzt viel strenger in Bezug auf ihre Argumente - Sie werden einen Fehler bekommen, wenn Sie ein Argument geliefert haben, das kein ästhetischer oder ein Parameter ist. Dies wird wahrscheinlich kurzfristig zu Schmerzen führen, aber langfristig Begriff wird es viel einfacher machen, Rechtschreibfehler und andere Fehler zu erkennen (# 1293). " Ich fürchte, ich habe den Schmerz getroffen. –

+0

Interessant. Ich konnte es nicht zum Laufen bringen, nachdem ich 'stat =" identity ", position =" identity "' hinzugefügt hatte. Es starb mit der Meldung "Fehler: is.logical (na.rm) ist nicht wahr". Ich denke, es ist ein Fehler. –

Antwort

0

Meist funktioniert es gut, wenn wir stat = "Identität", position_dodge (width = 3) in Funktionsschicht

ggplot()+ layer(data=df, mapping=aes(x=ind, y=dep), geom="point",stat="identity",position_dodge(width=3)) 

#data 

df <- data.frame(ind = c(20,35,45,55,70), dep = c(6,17,26,37,44)) 

enter image description here