R 如何使用ggplot2绘制填充直方图及其密度?

R 如何使用ggplot2绘制填充直方图及其密度?,r,plot,ggplot2,histogram,R,Plot,Ggplot2,Histogram,我使用ggplot2创建了此直方图: x = rnorm(100,0,150) df <- data.frame(val=c(x)) ggplot(df, aes(val,..density.., fill = ..x..>100)) + geom_histogram(binwidth=bw.SJ(df$val), colour="black") + scale_fill_hue(h=c(115,230)) 这将返回错误: Error in get(x, envir =

我使用ggplot2创建了此直方图:

x = rnorm(100,0,150)
df <- data.frame(val=c(x))
ggplot(df, aes(val,..density.., fill = ..x..>100)) + 
  geom_histogram(binwidth=bw.SJ(df$val), colour="black") +
  scale_fill_hue(h=c(115,230))
这将返回错误:

Error in get(x, envir = this, inherits = inh)(this, ...) : 
  Aesthetics can not vary with a ribbon

提前谢谢

在density调用中没有任何参数时它能工作吗?如果是的话,试试看

geom_density(colour="red", size=1) +
而不是

geom_density(colour="red", lwd=1) +

如果这不起作用,一个可复制的示例可能会有所帮助。

在密度调用中没有任何参数,它是否起作用?如果是的话,试试看

geom_density(colour="red", size=1) +
而不是

geom_density(colour="red", lwd=1) +

如果这不起作用,一个可复制的示例可能会有所帮助。

如果您在
geom_直方图中指定
fill=..x..>100)
而不是整个绘图,那么它应该起作用。不能在密度上改变填充颜色

ggplot(df, aes(val)) + 
  geom_histogram(aes(fill = ..x.. > 100), 
                 binwidth = bw.SJ(df$val), colour = "black") +
  scale_fill_hue(h = c(115, 230)) +
  geom_density(colour = "red", lwd = 1)

如果您在
geom_直方图中指定
fill=…x..>100)
,则它应该可以工作,而不是整个绘图。不能在密度上改变填充颜色

ggplot(df, aes(val)) + 
  geom_histogram(aes(fill = ..x.. > 100), 
                 binwidth = bw.SJ(df$val), colour = "black") +
  scale_fill_hue(h = c(115, 230)) +
  geom_density(colour = "red", lwd = 1)