Gibt es eine Möglichkeit, bei fehlenden Daten im folgenden Zeitreihenbeispiel eine konstante Breite für geom_bar()
einzustellen? Ich habe versucht, width
in aes()
ohne Glück zu setzen. Vergleichen Sie die Balkenbreite von Mai '11 bis Juni '11 im Diagramm unter dem Codebeispiel.Konsequente Breite für geom_bar bei fehlenden Daten
colours <- c("#FF0000", "#33CC33", "#CCCCCC", "#FFA500", "#000000")
iris$Month <- rep(seq(from=as.Date("2011-01-01"), to=as.Date("2011-10-01"), by="month"), 15)
colours <- c("#FF0000", "#33CC33", "#CCCCCC", "#FFA500", "#000000")
iris$Month <- rep(seq(from=as.Date("2011-01-01"), to=as.Date("2011-10-01"), by="month"), 15)
d<-aggregate(iris$Sepal.Length, by=list(iris$Month, iris$Species), sum)
d$quota<-seq(from=2000, to=60000, by=2000)
colnames(d) <- c("Month", "Species", "Sepal.Width", "Quota")
d$Sepal.Width<-d$Sepal.Width * 1000
g1 <- ggplot(data=d, aes(x=Month, y=Quota, color="Quota")) + geom_line(size=1)
g1 + geom_bar(data=d[c(-1:-5),], aes(x=Month, y=Sepal.Width, width=10, group=Species, fill=Species), stat="identity", position="dodge") + scale_fill_manual(values=colours)
Es gibt ein ähnliches Problem [hier] (https://github.com/hadley/ggplot2/issues/235) aber es handelt sich nur um 'stats', die den width-Parameter nicht verarbeiten können. 'Position = 'Ausweichen' scheint das gleiche Versagen zu haben. Jemand mit ein bisschen mehr "ggplot" Wissen möchte vielleicht eingewogen werden, aber das klingt wie ein potentieller Fehler. – Justin
Ich bin auch auf dieses Problem gestoßen. Gut zu wissen. Fürs Erste verwende ich die unten beschriebene Problemumgehung, indem ich Werte mit NA ausfülle. – tcash21
In seiner Antwort auf https://github.com/tidyverse/ggplot2/issues/1776 sagt Hadley: _Das funktioniert so. Vielleicht möchten Sie Facetting stattdessen versuchen. _ BTW, dieses Problem wurde schon mehrmals auf SO: [hier] (http://stackoverflow.com/q/12806260/3817004) und [hier] (http: // stackoverflow .com/q/15367762/3817004), z – Uwe