2016-10-21 5 views
0

Mit ggplot2 möchte ich meine facettierten geom_pont Plots kommentieren: Ich zeichne einige Daten pro Pflanze für 2 Parameter und ich möchte jeden facettierten Plots mit der Populationsgröße jeder Pflanze, die den Plot machen, annotieren. Unten ist ein ähnliches Beispiel zu meinen Daten. Lässt den Datensatz CO2 unterteilen, um das Beispiel relevanter zu machen. Ich zähle die Anzahl der Anlage, für die die Aufnahme von über 20 ist und benennen Sie die Spalte:kommentieren Sie einen facettierten geom_point

require(plyr) 
require(dplyr) 
require(ggplot2) 

CO2_mod<-subset(CO2,uptake>20) 
COUNT<-ddply(.data=CO2_mod, 
     .variable=.(Plant,Treatment), 
     .fun=count) 
names(COUNT)[3] <- c("PopSize") 

Hier ist der Code für facettierte Plots basierend auf Behandlungen:

p1<-ggplot(CO2_mod, aes(x=Plant, y=uptake)) 
p2<-p1+geom_point(aes())+ 
    facet_grid(Treatment~., scales="free") 
p2 

Nun möchte Ich mag jeder mit Anmerkungen versehen facettiertes Grundstück mit dem PopSize Wert per Plant und per Treatment aus dem COUNT df. Ich habe diesen Code ohne Erfolg versucht:

y<-max(CO2_mod$uptake)+1 
COUNT<-mutate(COUNT,y=paste0(y)) 

p2<-p1+geom_point(aes())+ 
    facet_grid(Treatment~., scales="free")+ 
    geom_text(data=COUNT, aes(x=Plant, y=y, label=PopSize), 
     colour="black") 
p2 

Der Fehler Warnung sagt: Error: Discrete value supplied to continuous scale

Was wäre der richtige Weg, dies zu tun? danke!

Antwort

2

COUNT Inspizieren zeigt, dass y ist ein Zeichenvektor:

str(COUNT) 
# 'data.frame': 10 obs. of 4 variables: 
# $ Plant : Ord.factor w/ 12 levels "Qn1"<"Qn2"<"Qn3"<..: 1 2 3 4 5 6 7 8 9 12 
# $ Treatment: Factor w/ 2 levels "nonchilled","chilled": 1 1 1 2 2 2 1 1 1 2 
# $ PopSize : int 6 6 6 6 6 6 5 6 5 2 
# $ y  : chr "46.5" "46.5" "46.5" "46.5" ... 

Wenn wir COUNT so modifizieren, dass y numerisch ist:

COUNT<-mutate(COUNT,y=as.numeric(y)) 

wir dieses Grundstück erhalten: enter image description here

Verwandte Themen