NEUFASSUNG
Keine Notwendigkeit Gruppierungsspalte angeben, ggplot
Befehl ist viel kompakter.
library(ggplot2)
set.seed(1234)
# Data generating block
df <- data.frame(x=sample(1:14, 1000, replace=T))
# Colors
colors <- c(rep("red",7), rep("blue",4), rep("orange",3))
ggplot(df, aes(x=x)) +
geom_histogram(fill=colors) +
scale_x_discrete(limits=1:14)
alte Version
library(ggplot2)
#
# Data generating block
#
df <- data.frame(x=sample(c(1:14), 1000, replace=TRUE))
df$group <- ifelse(df$x<=7, 1, ifelse(df$x<=11, 2, 3))
#
# Plotting
#
ggplot(df, aes(x=x)) +
geom_histogram(data=subset(df,group==1), fill="red") +
geom_histogram(data=subset(df,group==2), fill="blue") +
geom_histogram(data=subset(df,group==3), fill="orange") +
scale_x_discrete(breaks=df$x, labels=df$x)
Ich nehme an, Sie ein Balkendiagramm bedeuten, nicht ein Histogramm? Da ist ein (großer) Unterschied. – joran
Die Daten sind ein Diagramm der Häufigkeit von diskontinuierlichen Daten. Ich habe es mit 'geom_histogram' geplottet. Ich bin mir nicht sicher, ob dies ein "Balkendiagramm" oder ein "diskretes Histogramm" darstellt. – drbunsen
Ok. Ich würde wahrscheinlich nur in diesem Fall geom_bar verwenden. Und dann brauchen Sie nur eine Gruppierungsvariable in Ihrem Datenrahmen, die die gewünschte Farbgruppierung definiert, und ordnen Sie diese dann 'fill' zu. Es gibt einige Beispiele in '? Geom_bar'. – joran