[英]How to add an ellipse to a scatter plot colored by density in R?
我有一个代码可以生成按密度着色的散点 plot(受这篇文章R Scatter Plot 的启发:符号颜色表示重叠点的数量)
## Data in a data.frame
x1 <- rnorm(n=1000, sd=2)
x2 <- x1*1.2 + rnorm(n=1000, sd=2)
df <- data.frame(x1,x2)
## Use densCols() output to get density at each point
x <- densCols(x1,x2, colramp=colorRampPalette(c("black", "white")))
df$dens <- col2rgb(x)[1,] + 1L
## Map densities to colors
cols <- colorRampPalette(c("#FF3100", "#FF9400", "#FCFF00",
"#45FE4F", "#00FEFF", "#000099"))(6)
df$col <- ifelse(df$dens >= 250, cols[1], ifelse(df$dens >= 200, cols[2], ifelse(df$dens >= 150, cols[3], ifelse(df$dens >= 100, cols[4], ifelse(df$dens >= 50, cols[5], cols[6])))))
## Plot it, reordering rows so that densest points are plotted on top
plot(x2~x1, data=df[order(df$dens),], pch=20, col=col, cex=2)
我想添加一个椭圆,其中密度值等于固定值,例如 200。 就像在这张图片中一样,其中绘制了一个椭圆,其中密度值等于 0.7。 我没有在这张图片中生成 plot 的代码,所以我真的不知道如何得到这样的东西
有人可以帮忙吗?
ggplot2 有一个学习曲线,但如果你愿意给它一个 go 你可以使用 geom_density_2d。 我认为它可以满足您的需求,至少在大多数情况下。
https://ggplot2.tidyverse.org/reference/geom_density_2d.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.