R中的着色直方图

Posted

技术标签:

【中文标题】R中的着色直方图【英文标题】:Coloring Histograms in R 【发布时间】:2021-11-28 20:39:07 【问题描述】:

我正在尝试绘制以下数据:

library(ggplot2)

my_data <- data.frame( a = abs(rnorm(1000,17,10)),
b = a)

my_data$col = as.factor(ifelse(my_data$a > 17, "red", "blue"))

ggplot(my_data, aes(x=a)) + 
  geom_histogram(binwidth=1)

但由于某种原因,当我尝试添加颜色时,出现以下错误:

ggplot(my_data, aes(x=a)) + 
  geom_histogram(binwidth=1, color = my_data$col)

Error: Aesthetics must be either length 1 or the same as the data (59): colour

谁能告诉我如何解决这个错误?

谢谢

【问题讨论】:

【参考方案1】:

您可以将cutscale_fill_manual 一起使用。

library(ggplot2)

my_data <- data.frame(a = abs(rnorm(1000,17,10)))
my_data$col = cut(my_data$a, c(-Inf, 17, Inf))

ggplot(my_data, aes(x=a, fill = col)) + 
  geom_histogram(binwidth=1) + 
  scale_fill_manual(breaks = levels(my_data$col), values = c('blue', 'red'))

【讨论】:

@Ronak Shah:谢谢你的回答!我正在尝试在此问题中应用您的逻辑:***.com/questions/69503597/… 非常感谢!

以上是关于R中的着色直方图的主要内容,如果未能解决你的问题,请参考以下文章

如何绘制从不同列着色的堆叠 seaborn 直方图

R中的部分颜色直方图

R中的动画直方图

将密度曲线拟合到R中的直方图

R创建两个变量的直方图

R中的堆叠直方图填充不堆叠