当数据集中观测对象过多时,我们绘制散点图时会发现大多数散点都重合在一起,这样会损失一部分数据信息,那么怎么办了?
有两种方法可以解决。
今天来学习散点图的另外几种表现形式。
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
参考资料
http://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html