我尝试在一个图形中同时绘制geom_histogram
和geom_density
。当我将两者分开绘制时,我会得到我想要的输出(直方图和密度图),但当我尝试组合它们时,只会显示直方图(无论直方图/密度在代码中的顺序如何)。
我的代码如下所示:
ggplot(data=Stack_time, aes(x=values))+geom_density(alpha=0.2, fill="#FF6666")+
geom_histogram(binwidth = 50, colour="black", fill="#009454")
我没有收到任何错误消息,但是geom_density
从未与geom_histogram
一起显示。
发布于 2019-06-02 22:11:37
由于您在这里没有提供任何数据,因此基于mtcar的解决方案:
您的代码几乎是正确的。您需要将alpha
值添加到直方图中,以便可以看到密度。但你也需要缩放你的数据,因为密度图在0和1之间。如果你得到的数据值大于1,密度图可能很小,你看不到它。使用如下定义的函数scale_data
,我将我的数据缩放到0-1的范围
df=mtcars
scale_data <- function(x){(x-min(x))/(max(x)-min(x))}
df$mpg2 <- scale_data(df$mpg)
library(ggplot2)
ggplot(data=df, aes(x=mpg2))+geom_density(alpha=0.2, fill="#FF6666")+
geom_histogram(binwidth = 50, colour="black", fill="#009454", alpha = 0.1)
这给出了预期的输出:
您可以根据需要调整此解决方案。只需对数据进行缩放或密度图即可
发布于 2019-06-02 22:41:34
这应该可以完成这项工作,大致如下:
data.frame(x=rnorm(1000)) %>% ggplot(aes(x, ..density..)) + geom_histogram(binwidth = 0.2, alpha=0.5) + geom_density(fill="red", alpha=0.2)
https://stackoverflow.com/questions/56415650
复制相似问题