有没有办法在 R 中叠加三个直方图(具有三种不同颜色)?

问题描述 投票:0回答:1

我只是想知道是否有人知道如何在 R 中的一个图中将三个不同的直方图相互叠加。假设您有三个变量:

x <- c(1.5,2.1,3.6,4.2,5.6) 
y <- c(2.5,2.1,1.6,3.2,4.6)
z <- c(0.5,1.5,2.6,2.2,3.6)

如果你为每个变量运行一个直方图,然后你想把这三个直方图放在同一个图中(覆盖所有三个直方图),每个直方图颜色不同,你会怎么做?

谢谢!

r ggplot2 histogram
1个回答
0
投票

我们可以这样做:

library(dplyr)
library(ggplot2)

 df1 <- data.frame(values = c(rnorm(1000, 2, 3),
                              rnorm(1000, 3, 2),
                              runif(1000, 4, 11)),
                              group = c(rep("x", 1000),
                                        rep("y", 1000),
                                        rep("z", 1000)))
  ggplot(df1, aes(x = values, y=100*(..count..)/sum(..count..), fill = group)) +                       
    geom_histogram(position = "identity", alpha = 0.5, bins = 70)+
    ylab("percent")+
    theme_minimal()

© www.soinside.com 2019 - 2024. All rights reserved.