【问题标题】:How to plot pdf (probability density function) of 2 graphs in R如何在 R 中绘制 2 个图的 pdf(概率密度函数)
【发布时间】:2021-01-03 02:47:42
【问题描述】:

我正在尝试可视化两个分布的直方图,然后在同一个 pdf 图中可视化分布。

首先,我尝试从 µ = 6 och σ = 2 的正态分布中模拟 100 到 5000 次绘制。

尝试:

x <-rnorm(n=100, mean=6, sd=2)
hist(x, probability=TRUE)
y <-rnorm(n=5000, mean=6, sd=2)
hist(x, probability=TRUE)

我相信这对于可视化直方图是正确的。但是,我不明白如何在同一个图中显示两个图的 pdf。我找到了一个名为 pdfPlot() 的函数,但无法使其工作。

如何将 x 和 y 组合成一个图形并显示它们的 pdf?

【问题讨论】:

  • 您在寻找curve(dnorm(x, mean = 6, sd = 2), from = 0, to = 12, add = TRUE, col = "black", lty = "dashed")吗?还是lines(density(x))y 一样?

标签: r normal-distribution probability-density cdf


【解决方案1】:

您可以考虑选择ggplot2。如有必要,我会为您留下代码。您可以在数据框中设置变量,然后绘制它们。您可以从geom_histogram() 中删除position 的元素,以便在图中拥有其他视角。代码如下:

library(ggplot2)
set.seed(123)
#Code
x <-rnorm(n=100, mean=6, sd=2)
hist(x, probability=TRUE)
y <-rnorm(n=5000, mean=6, sd=2)
hist(x, probability=TRUE)
#Data
x <-rnorm(n=100, mean=6, sd=2)
y <-rnorm(n=5000, mean=6, sd=2)
xlab <- rep('x',100)
ylab <- rep('y',5000)
#Dataframe
df <- data.frame(value=c(x,y),lab=c(xlab,ylab),stringsAsFactors = F)
#Plot
ggplot(df,aes(x=value,fill=lab,color=lab,group=lab))+
  geom_histogram(aes(y = ..density..), alpha = 0.4,position = position_dodge())+
  geom_line(aes(y = ..density..,), stat = 'density',show.legend = F) 

输出:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 2013-01-27
    • 2016-06-07
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多