如何手动填充ggplot2直方图中的颜色

drb*_*sen 9 r ggplot2

我正在生成直方图,我想为特定颜色的某些组着色.这是我的直方图:

在此输入图像描述

我有14组,我想为前7个红色,接下来的4个蓝色和最后3个橙色着色.我怎么能在ggplot中这样做?谢谢.

red*_*ode 14

更新后的版本

无需指定分组列,ggplot命令更紧凑.

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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

旧版

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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述