正在加载
请稍等

菜单

Home 码农菜园 前端视界 R数据可视化-11 其他图形
Home 码农菜园 前端视界 R数据可视化-11 其他图形

R数据可视化-11 其他图形

前端视界 by   阅读量 7,759

除了之前介绍的几大类常见图形之外,我们还可以在R中绘制一些其他图形。

1 相关矩阵图

你可能见过这样的图,一个正方矩阵,每个元素表示行变量和列变量之间的相关性,红色表示正相关,蓝色表示负相关,颜色深浅表示相关性强弱,这个就是相关矩阵图。

先来看下mtcars数据集中,变量两两之间的互相关。

输出的是一个二维的互相关矩阵。如果数据集中包含非数值列,在计算互相关之前应当去除这些列,接下来使用corrplot包绘制相关矩阵图,命令很简单,画图来的图却很美~

相关矩阵图

2 网络图

使用igraph包可以绘制网络图,首先传递一个包含所有边的向量,然后绘制结果对象。

网络图中节点的位置是随机放置的,可以在绘图之前设置随机数种子,通过尝试不同的随机数种子,直到得到一个较为满意的布局结果。

更常见的做法是从数据框中生成网络图,例如使用数据框的某两列,每条记录确定一条相连关系。以下使用madmen2数据集,其Name1和Name2两列皆为人名,故一条记录即为两个人名之间的一条关联,同时使用Fruchterman-Reingold布局,即节点间存在斥力,但是被边牵引在一起。

网络图

以下用圆圈布局来绘制无向图。

圆圈无向网络图

3 热力图

使用geom_tile()或geom_raster()绘制热力图,将一个连续变量映射到fill上即可。以下使用presidents数据集,它是一个时间序列对象,所以首先需要将其转化为数据框。

热力图

4 三维散点图

rgl包提供了OpenGL图形库的3D绘图接口,其中的plot3d()函数接受两种形式的输入参数:一个数据框,前三列分别表示x、y、z的坐标;或者直接传递三个向量,分别表示x、y、z的坐标。绘图之后,还可以通过点击和拖动鼠标来旋转图形,滚动鼠标来缩放图形。以下三维散点图中的x、y、z轴分别表示mtcars数据集中的wt、disp和mpg,可以看出三者之间比较明显的正相关。

三维散点图

可以将以上三维散点图进一步美化。

带阴影的三维散点图

5 聚类图

使用聚类图可以观察记录如何根据各项指标进行层次聚类,以下使用hclust()绘制聚类图,在绘图之前需要进行一些预处理工作。

层次聚类图

6 向量场

以下使用isabel数据集和geom_segment()函数绘制向量场,isabel数据集的x、y分别表示经度和纬度,z为高度,单位是千米,vx、vy、vz分别为各个方向上的风速分量,speed为总风速。z的取值范围为0.035~18.035千米,以下仅使用最低高度的切片数据。

向量场1

以上向量场有两点不足,分辨率太高导致不易阅读,没有给线段添加箭头方向。以下定义了一个下采样函数,在x和y方向上每n个点采样一次,为线段添加方向箭头,同时将风速映射到线段的透明度上,并叠加了相应地区的地图边界。

向量场2

由于isabel数据集包括多个z高度,因此可以使用分面来展示不同高度下的风力场。

分面向量场

7 经验累积分布图

使用stat_ecdf()可以绘制经验累积分布图。

8 马赛克图

使用马赛克图可以展示列联表,即多组类别分割下,每个子群的记录数量。UCBAdmissions是一个三维的列联表,分割类别为Admit、Gender和Dept,使用ftable()可以将列联表平铺展开。

马赛克图

09 2016-10

发表评论