R语言中级绘图--高密度图

本章,我们主要关注用于展示双变量间关系和多变量间关系的绘图方法
当数据点重叠很严重时,用散点图来观察变量关系就显得“力不从心”,这时就需要使用高密度图来显示双变量之间关系。
示例

#设置数据
set.seed(1234)
n <- 10000
c1 <- matrix(rnorm(n,mean = 0,sd=0.5),ncol=2)
c2 <- matrix(rnorm(n,mean=3,sd=2),ncol=2)
mydata <- rbind(c1,c2)
#把矩阵转换为表格
mydata <- as.data.frame(mydata)
names(mydata) <- c("x","y")
attach(mydata)
#制作散点图
plot(mydata$x,mydata$y,pch=19,main="Scatter Plot with 10000 Observations")
#数据点的重叠导致识别x与y间的关系变得异常困难,可以使用封箱,颜色和透明度来指明图中任意点上的重叠的数目
#smoothScatter()函数可以利用核密度估计生成用颜色密度来表示点分布的散点图
#代码如下
attach(mydata)
smoothScatter(mydata$x,mydata$y,main="Scatter Plot Colored by smoothed Densities")

在这里插入图片描述
在这里插入图片描述

hexbin包中的hexbin()函数将二元变量的封箱放在六边形单元格中。
用六边形封箱图展示各点上覆盖观测点数目
示例如下
其中数据是上例中的数据

install.packages("hexbin")
library(hexbin)
attach(mydata)
#xbins用来控制生成的六边形的数量,xbins越少生成的六边形的数量越少,每个六边形包含的点就越多
bin <- hexbin(mydata$x,mydata$y,xbins=20)
plot(bin,main="Hexagonal Binning with 10000 Observations")

在这里插入图片描述
小结:
绘制散点图时,当点的数量非常多时就不容易看出趋势,这时就需要使用高密度图
绘制高密度图有两种方式,分别使用smoothscatter()函数和hexbin包中的hexbin()函数
使用smoothscatter()函数时点的密度不同会呈现不同的颜色,密度越高颜色越深。
使用hexbin()函数时会把点封装在相同大小不同颜色的六边形中,每个六边形封装的点越多颜色越深,一次来观察点的趋势。

发布了39 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42712867/article/details/100129722