实验目的

掌握R语言中Hexbin图的含义及绘制

实验原理

在本实验中,散点图的使用频率很高,它既可以描绘单变量也可以描绘多变量,但是我们需要注意的是:当数据量很大时,我们可能难以从散点图中发现数据的结构。比如说下图,是模拟随机生成10000组数的散点图,从中观察大量散点聚集区的数据结构就比较困难。这就是一个大数据问题。大数据问题一般需要不同的可视化方式。

实验步骤

模拟生成10000组数的散点图

> x<-rnorm(10000,mean=0,sd=100)
> y<-x+rnorm(10000,mean=0,sd=100)
> lr<-lm(y~x)
> plot(x,y)
> points(x, lr$coefficients[1] + lr$coefficients[2] * x,type = "l", col = 1)

尽管我们可以运用颜色和透明度来解决这个问题,但是运用Hexbin图会更好。Hexbin图结合了散点图和直方图的特点。和散点图类似,Hexbin图也是在x,y坐标轴画图,第三个维度是运用阴影来描述数据的集中度。

下图就是用Hexbin图展示相同的数据,可以看出数据更加密集地聚集在聚集处的中心,大致沿着回归线分布。

> library(hexbin)
> hexbinplot(y ~ x,type=c("g", "r"))

如下面的例子使用随机生成的大量数据绘制hexbin图:

> library(hexbin)
> mixdata <-
+     data.frame(x = c(rnorm(5000),rnorm(5000,4,1.5)),
+                y = c(rnorm(5000),rnorm(5000,2,3)),
+                a = gl(2, 5000))
> hexbinplot(y ~ x, mixdata, aspect = 1,
+            trans = sqrt, inv = function(x) x^2)

> hexbinplot(y ~ x | a, mixdata)

同样hexbinplot函数还可以绘制不同类型的图形:

> hexbinplot(y ~ x | a, mixdata, style = "lattice",
+            xbnds = "data", ybnds = "data")

另外两个例子:

> hexbinplot(y ~ x | a, mixdata, style = "nested.centroids")
> hexbinplot(y ~ x | a, mixdata, style = "nested.centroids",
+            border = FALSE, type = c("g", "smooth"))

results matching ""

    No results matching ""