将散点图添加到ggplot直方图

时间:2020-04-06 04:31:15

标签: r ggplot2 scatter

我想添加一个散点图以覆盖到R中的ggplot直方图上。 在下面的geom_point()上给我一个错误:错误:mapping必须由aes()创建 您能提供指导吗?

rand_nr <- 10000
rand_max <- 1
rand_min <- 0
lambda <- 1
x_min <- 0
x_max <- 10
bin_nr <- 50

diff_x <- (x_max - x_min) / bin_nr
edge <- seq(x_min, x_max, diff_x)
x_var <- seq(x_min, x_max, 0.01) # actual x variable
rand_var <- runif(rand_nr, rand_min, rand_max)

X <- tan(rand_var * pi / 2) # F(X)=(2/pi)*atan(x)

p <- 1 / (1 + (x_var^2))


X_df <- data.frame(X, group = "x")
P_df <- data.frame(p, group = "p")

plot(rand_var) # plot the random variables

ggplot(X_df, aes(X, probability (x),fill=group, colour=group)) + 
  geom_histogram(aes(y=..density..), breaks=edge, alpha=0.6, 
                 position="identity", lwd=0.2) +
  ggtitle("Normalized")

上面的工作代码。无效代码如下


ggplot(X_df, aes(X, probability (x),fill=group, colour=group)) + 
  geom_histogram(aes(y=..density..), breaks=edge, alpha=0.6, 
                 position="identity", lwd=0.2) +
  geom_point(x_var,p,aes(x1,px1)) +
  ggtitle("Normalized") 

1 个答案:

答案 0 :(得分:2)

是您要找的东西吗?

ggplot(X_df, aes(x=X,fill=group, colour=group)) + 
    geom_histogram(aes(y=..density..), breaks=edge, alpha=0.6, 
             position="identity", lwd=0.2) + 
    geom_point(data=P_df,aes(x = x_var,y =p)) +
  ggtitle("Normalized") 

enter image description here

发生了什么变化

  • 首先,由于数据来自其他数据框,因此您需要在data=中添加geom_point自变量
  • 第二,如错误所述,您需要在x内提供yaes的参数