2014-06-13 14 views
12

Unten Code funktioniert gut und es Etiketten der Barplot richtig, Wenn ich jedoch geom_text für ein Histogramm versuche ich Fail da Geom_text erfordert eine y-Komponente und ein Histogramm y-Komponente ist die Häufigkeit, die nie ein Teil der ist Code dann WIE Bringe ich Etiketten für ein Histogramm?Wie erhalten Sie Datenbeschriftungen für ein Histogramm in ggplot2?

funktioniert gut

ggplot(csub, aes(x=Year, y=Anomaly10y, fill=pos)) + 
     geom_bar(stat="identity", position="identity") + 
     geom_text(aes(label=Anomaly10y,vjust=1.5)) 

Problem- keine Y-Komponente (durch?) In dem unten stehenden Code für geom_text

ggplot(csub,aes(x=Anomaly10y)) + 
     geom_histogram() 
     geom_text(aes(label=?,vjust=1.5)) 

von Standard geom x und y-Komponente erfordert,

Was soll ich tun, wenn ich keine Y-Komponente habe, da sie automatisch generiert wird? durch die Funktion?

Antwort

30

geom_histogram() ist nur ein ausgefallener Wrapper zu stat_bin so können Sie all das mit den Bars und Text, die Sie mögen. Hier ist ein Beispiel

#sample data 
set.seed(15) 
csub<-data.frame(Anomaly10y = rpois(50,5)) 

Und wir es dann plotten mit

ggplot(csub,aes(x=Anomaly10y)) + 
    stat_bin(binwidth=1) + ylim(c(0, 12)) + 
    stat_bin(binwidth=1, geom="text", aes(label=..count..), vjust=-1.5) 

labeled univariate ggplot2 barplot

+1

Als Randnotiz zu erhalten, das Hinzufügen '+ Grenzen (x = c (0, 12)) 'wird das Etikett für 10 zeigen. – tonytonov

+1

@tonytonov Ich hätte das tun sollen. Ich ging voran und aktualisierte das Beispiel, um den Bereich zu erweitern, so dass keine Etiketten abgeschnitten werden. – MrFlick

+0

Danke, es funktioniert aber es ist eine Warnung: "ymax nicht definiert: Position mit y statt." – Shoaibkhanz

Verwandte Themen