教材:《统计建模与R软件》薛毅 陈立萍编著
关注本号即可便捷阅读历史文章,敬请订阅~~ :-)
########################
## 3.3 R软件中的绘图命令
## 3.3.1 高水平绘图函数
# 1.plot()
#(1) plot(x, y),生成向量y关于向量x的散点图
x <- c(1,="" 2,="">->
y <- c(1,="" 2,="">->
plot(x, y)
#(2) plot(x),生成时间序列x的图形,或向量x关于下标的散点图,如x是复向量,则绘出复数的实部与虚部的散点图
x <- c(3,="" 2,="">->
plot(x)
#注意3 - i与3 - 1i的虚部区别
Im(3 - i)
Im(3 - 1i)
y <- c(1="" +="" 2i,="" 2="" +="" 3i,="" 3="" -="">->
plot(y)
#(3) plot(f),plot(f, y),其中f是因子,y是数值向量,前者生成f的直方图,后者生成y关于f水平的箱线图
#Ex. 3.11 绘制四种不同配方材料寿命的箱线图,并分析四中配方下元件使用寿命的差异
y <- c(1600,="" 1610,="" 1650,="" 1680,="" 1700,="" 1700,="" 1780,="" 1500,="" 1640,="" 1400,="" 1700,="" 1750,="" 1640,="" 1550,="" 1600,="" 1620,="" 1640,="" 1600,="" 1740,="" 1800,="" 1510,="" 1520,="" 1530,="" 1570,="" 1640,="">->
f <- factor(c(rep(1,="" 7),="" rep(2,="" 5),="" rep(3,="" 8),="" rep(4,="">->
plot(f, y)
#(4) plot(df),plot(~ expr),plot(y ~ expr),其中df是数据框,y是任意对象,expr是对象名称的表达式(如a + b + c)
df <->->
age = c(13, 13, 12, 13, 12),
height = c(56.5, 65.3, 57.3, 62.5, 59.0),
weight = c(84.0, 98.0, 83.0, 84.0, 99.5)
); df
plot(df)
attach(df)
plot(~ age + height)
detach(df)
plot(weight ~ age + height, data = df)
# 2.显示多变量数据
pairs(df)
#绘出在给定值c下,a关于b的散点图:corplot(a ~ b | c)
coplot(weight ~ height | age, data = df)
# 3.显示图形
#(1) qqnorm(x), qqline(x), qqplot(x, y)
#(2) hist(x), hist(x, nclass = n), hist(x, breaks = b, ...)
#(3) dotchart(x, ...)
VADeaths
dotchart(VADeaths, main = 'Death Rates in Virgina - 1940')
dotchart(t(VADeaths), main = 'Death Rates in Virgina - 1940')
#(4) image(x, y, z, ...), contour(x, y, z, ...), persp(x, y, z, ...), 其中x,y是数值型向量,z是与其对应的矩阵(行数为x维数,列数为y维数),image绘制三维图形映像,contour绘制三维图形等值线,persp绘制三维图形表面曲线
#Ex. 3.12 绘制山区的地貌图和等值线图
x <- seq(0,="" 2800,="" 400);="" y="">-><- seq(0,="" 2400,="">->
z <- c(1180,="" 1320,="" 1450,="" 1420,="" 1400,="" 1300,="" 700,="">->
1230, 1390, 1500, 1500, 1400, 900, 1100, 1060,
1270, 1500, 1200, 1100, 1350, 1450, 1200, 1150,
1370, 1500, 1550, 1600, 1550, 1600, 1600, 1600,
1460, 1500, 1550, 1600, 1550, 1600, 1600, 1600,
1450, 1480, 1500, 1550, 1510, 1430, 1300, 1200,
1430, 1450, 1470, 1320, 1280, 1200, 1080, 940)
Z <- matrix(z,="" nrow="">->
contour(x, y, Z, levels = seq(min(z), max(z), by = 80))
persp(x, y, Z)
persp(x, y, Z, theta = 30, phi = 45, expand = 0.7)
#Ex. 3.13 在[-2pi, 2pi] x [-2pi, 2pi]的方形区域内绘制函数z = sin(x)sin(y)的等值线图和三维曲面图
x <- y="">-><- seq(-2="" *="" pi,="" 2="" *="" pi,="">->
f <- function(x,="" y)="" sin(x)="" *="">->
#绘制三维图形时,需要在f关系下做外积运算形成网格,才能绘出三维图形
z <- outer(x,="" y,="">->
contour(x, y, z, col = 'blue')
persp(x, y, z, theta = 30, phi = 30, expand = 0.7, col = 'lightblue')
## 3.3.2 高水平绘图中的命令
# 1.图中的逻辑命令
#add = TRUE表示在原图上添加图形,add = FALSE(缺省值)为新图替换原图
#axes = FALSE表示没有坐标轴,缺省值为TURE
# 2.数据取对数
#log = c('x', 'y', 'xy')分别表示对x,y及x、y轴一起取对数
# 3.type命令
#type = 'p' - 绘制散点图(缺省值)
#type = 'l' - 绘制实线
#type = 'b' - 所有点被实线连接
#type = 'o' - 实线通过所有的点
#type = 'h' - 绘出点到x轴的竖线
#type = c('s', 'S') - 绘出阶梯形曲线
#type = 'n' - 不会只任何点或曲线
# 4.图中的字符串
#xlab = '' - x轴说明
#ylab = '' - y轴说明
#main = '' - 图的说明
#sub = '' - 子图的说明
## 3.3.3 低水平作图函数
#所有低水平作图函数所做的图形必须是在高水平作图函数所绘制图形的基础上添加新的图形
# 1.加点、线的函数
#points(x, y) - plot(x, y)
#lines(x, y) - plot(x, y, type = 'l')
# 2.在点处加标记
#text(x, y, labels, ...),缺省时labels = 1:length(x)
x <- y="">-><- c(1:10,="" by="">->
plot(x, y)
plot(x, y, type = 'n')
text(x, y)
# 3.在图上加直线
#(1) abline(a, b),表示画一条y = ax + b的直线
#(2) abline(h = y),表示画一条过所有点的水平直线
#(3) abline(v = x),表示画一条过所欲点的竖直直线
#(4) abline(lm.obj),表示绘出线性模型得到的线性方程
rt <- read.table('exam0203.txt',="" head="">->
lm.sol <- lm(weight="" ~="" height,="" data="">->
attach(rt)
plot(Weight ~ Height)
abline(lm.sol)
detach(rt)
#polygon(x, y, ...)可以在图上加多边形
x <- c(3,="" 4,="" 1,="" 2,="" 2);="" y="">-><- c(1,="" 2,="" 2,="" 1,="">->
plot(x, y)
polygon(x, y)
# 4.在图上加标记、说明或其它内容
#加图的题目,title(main = '', sub = ''),其中主题目在顶部,子题目在底部
#在坐标轴上加标记,axis(side, ...),其中side是边,1表示在图的底部,2表示左侧,3表示顶部,4表示右侧
(本节完)
已发表文章:
1.R语言学习一:统计建模与R软件第二章
2.R语言学习二:统计建模与R软件第三章(3.1 描述性统计量)
3.R语言学习三:统计建模与R软件第三章(3.2 数据的分布)
联系客服