如何在 R 中绘制 2 个图的 pdf(概率密度函数)
How to plot pdf (probability density function) of 2 graphs in R
我正在尝试可视化两个分布的直方图,然后在同一个 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?
也许供您考虑的选项是 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)
输出:
我正在尝试可视化两个分布的直方图,然后在同一个 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?
也许供您考虑的选项是 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)
输出: