原文链接:初探R之demo(graphics)
https://mp.weixin.qq.com/s/Lo9eg3wrPN80YQ0_T5W2lwR是专门的统计编程语言,也是为统计计算和绘图而生的环境,它具有顶尖水准的绘图功能,除了开源免费它还拥有极为丰富的扩展包。通过R的官网(https://www.r-project.org/,国内有很多的镜像网站)可以下载到适合本机操作系统的安装文件,下一步到底即可完成安装。R到底能画哪些图?代码又是长啥样的呢?我们可以通过一行代码demo(graphics)来一窥其丰富。
demo(graphics)简介
demo(graphics)演示函数带graphics参数可以向我们展示R中代码是如何编写的,以及呈现的图形都有哪些样式。总共11组代码和图形,包括基础绘图包中的高级绘图函数pie、boxplot、hist、coplot等,以及低级绘图函数polygon、rect、axis、pairs等。plot() 也算是高级绘图函数,只不过它是属于泛型函数,会根据传入的参数或数据去调用相应的子函数,例如plot(x)(x为一维向量)会调用plot.default子函数,图形横坐标为索引(Index),纵坐标为数值(x)。下面我们挑选三组有意思的示例代码来学习下。
布朗运动
布朗运动(Brownian Motion) 是指悬浮在液体或气体中的微小粒子表现出的无规则运动,第五个示例图形对此进行了模拟展示,代码和结果图如下。
par(bg="white")
n <- 100
# c, 将值合并到向量或列表中
# cumsum, 累计值
# x和y, 各101个数值
x <- c(0,cumsum(rnorm(n)))
y <- c(0,cumsum(rnorm(n)))
# xx和yy, 各202个数值
xx <- c(0:n, n:0)
# rev, 翻转
yy <- c(x, rev(y))
# type="n", 不画任何的点或线
plot(xx, yy, type="n", xlab="Time", ylab="Distance")
# 多边形
polygon(xx, yy, col="gray")
title("Distance Between Brownian Motions")

鸢尾花
安德森鸢尾花卉数据集(Anderson's Iris data set)有150个样本,包含四个特征变量和一个类别变量,样本局部截图如下(来自参考文章2)。

演示函数中使用的代码和生成的图形如下。unclass()函数首先去除三种鸢尾花的名称,只保留基础代码(1、2、3)。然后三种颜色与三个代码重新结合,生成包含150个元素的颜色向量,作为数据点的背景色。
# 散点图矩阵
# unclass returns (a copy of) its argument with its class attribute removed
pairs(iris[1:4], main="Edgar Anderson's Iris Data", pch=21,
bg = c("red", "green3", "blue")[unclass(iris$Species)])

震源深度
最后一组数据来自quakes数据集,其中包含震源深度和经纬度信息。这次画的是条件图,首先根据不同震源深度对数据集进行分组,并在不同分组的条件下绘制经纬度数据点,代码和图形如下。
par(bg="cornsilk")
# 条件写在竖线后面
coplot(lat ~ long | depth, data = quakes, pch = 21, bg = "green3")
par(opar)
上图中震源深度默认分成6组,并且允许组别之间存在重叠的情况(默认0.5)。在coplot()函数的帮助文档中,使用了定制的方式,数据分成4组,重叠程度也做了设定,如下所示。
## Tonga Trench Earthquakes
# co.intervals, 根据参数返回分组矩阵
# 这里设置重叠程度为0.1,并返回4组震源深度的上下限
given.depth <- co.intervals(quakes$depth, number = 4, overlap = .1)
# given.values, 设定值
coplot(lat ~ long | depth, data = quakes, given.values = given.depth, rows = 1)

参考文章:
- 一览R基础包的六个高级绘图函数(盒型boxplot|条形barplot|直方hist|饼pie|dotchart|coplot)...
https://blog.youkuaiyun.com/qazplm12_3/article/details/117608905 - 转:iris数据集及简介
https://blog.youkuaiyun.com/java1573/article/details/78865495
306



被折叠的 条评论
为什么被折叠?



