首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点太多的散点图

点太多的散点图
EN

Stack Overflow用户
提问于 2011-10-10 22:57:39
回答 7查看 95.8K关注 0票数 138

我正在尝试绘制两个变量,其中N=700K。问题是有太多的重叠,因此绘图主要是一个实心的黑色区块。有没有办法得到一个灰度“云”,其中绘图的暗度是一个区域中点数的函数?换句话说,我不想显示单独的点,而是想要一个“云”,一个区域中的点数越多,该区域就越暗。

EN

Stack Overflow用户

发布于 2017-09-26 16:54:06

ggplot2中几个很好的选项概述

代码语言:javascript
复制
library(ggplot2)
x <- rnorm(n = 10000)
y <- rnorm(n = 10000, sd=2) + x
df <- data.frame(x, y)

选项A:透明点

代码语言:javascript
复制
o1 <- ggplot(df, aes(x, y)) +
  geom_point(alpha = 0.05)

选项B:添加密度等值线

代码语言:javascript
复制
o2 <- ggplot(df, aes(x, y)) +
  geom_point(alpha = 0.05) +
  geom_density_2d()

选项C:添加填充密度等值线

代码语言:javascript
复制
o3 <- ggplot(df, aes(x, y)) +
  stat_density_2d(aes(fill = stat(level)), geom = 'polygon') +
  scale_fill_viridis_c(name = "density") +
  geom_point(shape = '.')

选项D:密度热图

代码语言:javascript
复制
o4 <- ggplot(df, aes(x, y)) +
  stat_density_2d(aes(fill = stat(density)), geom = 'raster', contour = FALSE) +       
  scale_fill_viridis_c() +
  coord_cartesian(expand = FALSE) +
  geom_point(shape = '.', col = 'white')

选项E:六进制数

代码语言:javascript
复制
o5 <- ggplot(df, aes(x, y)) +
  geom_hex() +
  scale_fill_viridis_c() +
  geom_point(shape = '.', col = 'white')

选项F:地毯

代码语言:javascript
复制
o6 <- ggplot(df, aes(x, y)) +
  geom_point(alpha = 0.1) +
  geom_rug(alpha = 0.01)

合并成一个图形:

代码语言:javascript
复制
cowplot::plot_grid(
  o1, o2, o3, o4, o5, o6,
  ncol = 2, labels = 'AUTO', align = 'v', axis = 'lr'
)

票数 83
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7714677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档