zaktualizowana wersja
Nie ma potrzeby, aby określić kolumny grupowania, komenda ggplot
jest znacznie bardziej zwarty.
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)
starą wersję
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)
Jestem zakładając znaczy działkę bar, a nie histogramu? Istnieje (duża) różnica. – joran
Dane to wykres częstotliwości z nieciągłych danych. Sporządziłem to za pomocą "geom_histogram". Nie jestem pewien, czy stanowi to "wykres słupkowy", czy "dyskretny histogram". – drbunsen
Ok. Prawdopodobnie po prostu użyłbym geom_bar w tym przypadku. A następnie potrzebujesz tylko zmiennej grupującej w ramce danych, która definiuje żądane grupowanie kolorów, a następnie zamienia je na "wypełnij". Istnieje kilka przykładów w '? Geom_bar'. – joran