在R中的相同图中绘制两个密度

时间:2018-02-07 12:42:21

标签: r plot graph

我有两个密度 -fx-background-radius : 30; -fx-border-radius : 30; N(µ = 1, σ2 = 1)我知道我必须使用N(µ = −3.5, σ2 = 3/4).plot(),但我不确定如何将密度转换为函数。我甚至不确定这是否是我必须做的。 任何帮助,将不胜感激。谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用dnorm()函数以及使用seq()生成的一系列数字来获取绘制pdf的值:

获取介于-10到10之间的5000个值

x<-seq(-10,10,length=5000)

计算值 - 注意dnorm()使用标准差而不是方差,所以你需要取0.75的平方根。

y<-dnorm(x,mean=0, sd=1)
z<-dnorm(x, mean = -3.5, sd = sqrt(0.75))

plot()

绘制红色的第一个密度
plot(x, y, type="l" , ylim = c(0,1), xlim = c(-8,8), col = "red")

使用蓝色的lines()函数在第一个上面绘制第二个:

lines(x,z, type = "l", col = "blue")

enter image description here

答案 1 :(得分:0)

此代码将在同一图中绘制两个密度;)

library(tidyverse)

seq(-10, 10, by = 0.1) %>% 
  tibble(x = .) %>% 
  mutate(D1 = dnorm(x, 1, 1),
         D2 = dnorm(x, -3.5, 3/4)) %>% 
  gather(-x, key = Distribution, value = Value) %>% 
  ggplot(aes(x, Value)) + 
  geom_line(aes(color = Distribution))

enter image description here