我有一个密度散点图,想要添加一些数据点,并提供额外的信息 . 我可以绘制 first data frame ,但是有问题覆盖了 second . 这是一个例子:

library(ggplot2)

a <- runif(20000,min=-20,max=20)
b <-  runif(20000,min=200,max=600)
df1 <- data.frame(a=a , b=b ,c =densCols(a, b, colramp = colorRampPalette(rev(rainbow(20000, end = 4/6)))))
df2 <- data.frame(a= runif(50,min=-20,max=20), b= runif(50,min=200,max=600), d=runif(50,min=-1,max=1))

ggplot(df1) +
geom_point(aes(a, b, col = c), size = 1) + scale_color_identity() + 
geom_point(data=df2,aes(a, b,col = d, size=d)) +
scale_color_gradient2(limits=c(-1, 1), low="red" , high="blue", space = "Lab")

添加 df2 会创建错误: invalid argument to unary operator .

我也有兴趣知道如何创建更平滑的密度散点图,以便它可以覆盖整个绘图区域 .