Ich möchte nicht verwendete Ebenen (dh Ebenen mit einer Anzahl von 0) in meinem Balkendiagramm darstellen. Nicht verwendete Ebenen werden jedoch gelöscht, und ich kann nicht herausfinden, wie sie beibehalten werden sollen
df <- data.frame(type=c("A", "A", "A", "B", "B"), group=rep("group1", 5))
df$type <- factor(df$type, levels=c("A","B", "C"))
ggplot(df, aes(x=group, fill=type)) + geom_bar()
Im obigen Beispiel möchte ich C mit einer Zählung von 0 zeichnen sehen, aber es fehlt vollständig ...
Danke für jede Hilfe Ulrik
Bearbeiten:
Das macht was ich will
df <- data.frame(type=c("A", "A", "A", "B", "B"), group=rep("group1", 5))
df1 <- data.frame(type=c("A", "A", "A", "B", "B", "A", "A", "C", "B", "B"), group=c(rep("group1", 5),rep("group2", 5)))
df$type <- factor(df$type, levels=c("A","B", "C"))
df1$type <- factor(df1$type, levels=c("A","B", "C"))
df <- data.frame(table(df))
df1 <- data.frame(table(df1))
ggplot(df, aes(x=group, y=Freq, fill=type)) + geom_bar(position="dodge")
ggplot(df1, aes(x=group, y=Freq, fill=type)) + geom_bar(position="dodge")
Vermutlich besteht die Lösung darin, die Frequenzen mithilfe von table () zu berechnen und dann zu zeichnen
Macht das was du willst?
quelle
Das Löschen von Levels funktioniert nicht. Ablegen von Levels im ersten Beispiel
Ergebnisse in dieser Handlung:
Die Lösung ist im zweiten Beispiel, wo die Frequenzen manuell berechnet werden:
Ergebnisse in diesem:
Der letzte ist am informativsten, da der Platz von den Kategorien dort belegt wird. Count = 0
quelle
Sie können auch "scale_fill_color" verwenden, zum Beispiel:
quelle