繁体   English   中英

如何在 R 中按密度着色的散点图 plot 添加椭圆?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM