散点图散点重叠过多时,怎么办?

散点图散点重叠过多时,怎么办?

当数据集中观测对象过多时,我们绘制散点图时会发现大多数散点都重合在一起,这样会损失一部分数据信息,那么怎么办了?

有两种方法可以解决?

今天来学习散点图的另外几种表现形式。

1. 安装和加载R包

ggplot2已经安装的就不要在安装了,直接加载即可。

# install.packages("ggplot2")
library(ggplot2)

2. 加载演示数据集

使用ggplot2包的mpg数据集来绘制演示图形。

data(mpg) # 加载数据集
View(mpg) # 预览数据集
散点图散点重叠过多时,怎么办?

3. 绘制图形

我们先绘制个散点图看看情况。

p1 <- ggplot(data = mpg, aes(x = cty, y = hwy)) + 
  geom_point(color = "red") + 
  geom_smooth(method="lm", se=T) # 拟合线 添加置信区间
p1

散点图散点重叠过多时,怎么办?

从上面我们可以看到,图上的x变量和y变量是存在相关关系的。

但是,因为数值重叠的原因,有一些散点被隐藏掉了,数据集原有234个观测对象,而图上的散点远远小于这个数值,这样绘制出来的图形就会损失部分信息。

那么怎么解决这个问题了,一种是使用jitter_geom()函数增加抖动值,使重合的散点在原始原始位置随机抖动。

我们可以使用jitter_geom()函数设置散点抖动,使得重叠的点在原始位置随机抖动,抖动的范围可以设置width参数来控制。

p2 <- ggplot(data = mpg, aes(x = cty, y = hwy)) + 
  geom_jitter(width = .5, size=1) +
  labs(title="ggplot2绘制抖动散点图",
       subtitle="公众号:R语言统计与绘图"
       y="hwy"
       x="cty"
p2
散点图散点重叠过多时,怎么办?

如上图所示,现在图上显示的散点更多。

另外一种就是绘制计数图

当数据重叠的越多时,散点就越大。

计数图使用geom_count()函数来绘制。

p3 <- ggplot(data = mpg, aes(x = cty, y = hwy)) + 
  geom_count() +
  labs(title="ggplot2绘制计数图",
       subtitle="公众号:R语言统计与绘图"
       y="hwy"
       x="cty"
p3
散点图散点重叠过多时,怎么办?

如上图所示,计数图就简单绘制好了。

我们可以设置计数图的颜色,以及不显示旁边的图例。

p4 <- ggplot(data = mpg, aes(x = cty, y = hwy)) + 
  geom_count(col="tomato3", show.legend=F ) +
  labs(title="ggplot2绘制计数图",
       subtitle="公众号:R语言统计与绘图"
       y="hwy"
       x="cty"
p4

散点图散点重叠过多时,怎么办?

还可以设置黑白主题。

p5 <- p4 + theme_bw()
p5

散点图散点重叠过多时,怎么办?

参考资料

  1. http://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html

既往专辑

散点图散点重叠过多时,怎么办?

散点图散点重叠过多时,怎么办?

散点图散点重叠过多时,怎么办?

散点图散点重叠过多时,怎么办?

散点图散点重叠过多时,怎么办?

散点图散点重叠过多时,怎么办?

散点图散点重叠过多时,怎么办?

散点图散点重叠过多时,怎么办?

散点图散点重叠过多时,怎么办?

生物医学科研方法

生信代码:热图、箱线图、火山图、PCA、韦恩图通通可以拥有

2021-1-15 19:04:39

生物医学科研方法

文章接收报喜+征稿

2021-1-15 19:34:46