首页 > 解决方案 > 如何绘制两个变量的密度函数?

问题描述

我有两个长度相同的变量,v1 = 实际 alpha 和 v2 = 刺激 alpha。

v1= (0.1, 0.6, 0.8, 0.11) v2= (0.3, 0.1, 0.5, 0.7)

我想展示一个比较这两者的密度函数,复制这张图片:

在此处输入图像描述

标签: r

解决方案


这是一个base R解决方案(基于@Allan 的第二个数据框):

hist(df$x[df$group=="Simulated"], 
     freq = F,
     xlab = "Alpha in %",
     border = "white", 
     main = "Density function for Actual and Simulated data", cex.main = 0.9, 
     xlim = range(df$x[df$group=="Actual"]))
lines(density(df$x[df$group=="Simulated"]), lty = 2)
lines(density(df$x[df$group=="Actual"]), lty = 1)
legend("topleft", legend = c("Actual", "Simulated"), bty = "n", lty = c(1,2))
grid()

在此处输入图像描述

或者,使用更多颜色:

hist(df$x[df$group=="Simulated"], 
     freq = F,
     xlab = "Alpha in %",
     border = "white", 
     main = "Density function for Actual and Simulated Alpha", cex.main = 0.9, 
     xlim = range(df$x[df$group=="Actual"]))
bg <- par("usr")
rect(bg[1], bg[3], bg[2], bg[4], col="grey50", border = NA, density = 70)
grid()
lines(density(df$x[df$group=="Simulated"]), lty = 2, col = "blue")
lines(density(df$x[df$group=="Actual"]), lty = 1, col = "blue")
legend("topleft", legend = c("Actual", "Simulated"), bty = "n", lty = c(1,2), col = "blue")

在此处输入图像描述


推荐阅读