R语⾔:绘图函数
1. plot函数绘制图像
plot()函数:是对R中的多种对象进⾏绘图的泛型函数。它会识别作图对象的类,从⽽根据这些类来调⽤相应的作图⽅法
plot(x, y, type, main, sub, xlab, ylab, xlim, ylim, pch, lty, lwd, )
x, y: 各绘图点横坐标, 纵坐标构成的向量
type: 指定绘图的类型. 取“p”为点图;取“l”为线图;取“b”为点连线;取“o”为线穿过点;取“h”为悬垂线;取“s”为阶梯线
main: 指定主标题. - sub: 指定副标题
xlab: 指定 x 轴的标签;ylab: 指定 y 轴的标签
xlim: 指定横轴的上下限, 取值为上下限构成的向量;ylim: 指定纵轴的上下限, 取值为上下限构成的向量
pch: 指定观察点的符号, 可取从 1 ∼ 25 的整数
lty: 指定连线类型, 可取从 1 ∼ 6 的整数
lwd: 指定连线的宽度, 取整数
col: 指定颜⾊, 可取正整数, 或指定颜⾊参数
例如,plot()函数可以针对数据框(dataframe)这⼀类,⾃动调⽤plot.data.frame⽅法来绘图
windows()
par(mfrow=c(2,2))
plot(1:10,main="missing y")
plot(sin,-pi,pi,ylab="sin(x)",main="function: sin(x)")
plot(cars,main="dataframe: cars")
plot(PlantGrowth$group,PlantGrowth$weight,xlab="group",ylab="wei
ght",main="factor: PlantGrowth")
dev.off()
第⼀幅图形中,plot()函数绘制的对象是向量,在函数中,仅给出了成对数据x和y中的x向量,在y缺失的情况下,plot()函数就会使⽤向量x作为纵坐标,对其元素的位置绘制散点图
第⼆幅图形中,plot()函数绘制的对象是函数sin(x)。此时,泛型函数plot()实际上是⾃动调⽤了curve()函数来绘制图形
第三幅图形中,plot()函数绘制的对象是数据框。数据集cars是⼀个数据框,其中的两列变量speed和dist均为数值型。对于这种数值型的两列数据框,plot()函数将⽤第⼆列数据对第⼀列数据绘图,即⽤dist对speed绘图
第四幅图形中,plot()函数绘制的对象也是数据框,但是其中的⼀列为因⼦。当y轴是数值向量时,将绘制盒装图(boxplot);⽽当y 轴为因⼦向量时,则绘制棘状图(spineplot)
2. pie()函数绘制饼图
R中制作饼图的基本⽤法是:
pie(x, labels = names(x), edges = 200, radius = 0.8,
clockwise = FALSE, init.angle = if(clockwise) 90 else 0,
density = NULL, angle = 45, col = NULL, border = NULL, lty =
NULL, main = NULL, ...)
x为向量,其元素为⾮负的数值型数据,这些数据反映在饼图的对应⾯积上。
labels是表达式或者字符串,⽤以给数据添加标签。
edges⽤来控制饼图外圈的圆润程度。饼图是由多边形拟合⽽成的,edges数值越⼤,饼图的外圈看上去就越圆。
radius⽤来控制饼图的半径,如果给数据添加的标签很长,缩⼩饼图半径就能够将字符完整显⽰出来。
clockwise⽤来控制排列顺序,即顺时针或逆时针⽅向排列。
density⽤来控制阴影线的密度。
angle⽤以控制阴影线的斜率。
col是⼀个向量,⽤以填充被分割饼图的每⼀区域的颜⾊。
main控制图的标题。
pie(c(10,20,30,40),col=rainbow(4),labels=c("10%","20%","30%","40
%"),main="PIE CHART")
3. barplot()函数绘制柱状图
barplot(height, width = 1, space = NULL, names.arg =
NULL, = NULL, beside = FALSE, horiz = FALSE,
density = NULL, angle = 45, col = NULL, border = par("fg"),
main = NULL, sub = NULL, xlab = NULL, ylab = NULL, xlim
= NULL, ylim = NULL, xpd = TRUE, log = "", axes = TRUE,
axisnames = TRUE, cex.axis = par("cex.axis"), cex.names =
par("cex.axis"), inside = TRUE, plot = TRUE, axis.lty = 0,
offset = 0, add = FALSE, args.legend = NULL, ...)
height是绘图所⽤到的数据,数据的⼤⼩差异体现在柱形的⾼度上⾯。如果想要对⼀组数据进⾏绘图,则数据以向量⽅式输⼊;如果想要对两组以上数据进⾏绘图,则数据以矩阵⽅式输⼊,矩阵每⼀⾏代表⼀组数据。
names.arg是图形中绘制于每个柱形下⽅的名称向量。如果该参数被忽略,则名称就显⽰为向量所带的名称属性或矩阵的名称列。
<⽤以控制图例。
horiz控制柱形(条形)以垂直或⽔平⽅式放置。
beside控制不同组数据以垂直⽅式堆积或⽔平⽅式并列来进⾏展⽰。取FALSE(默认取值)时,不同组的数据以垂直⽅式堆积展⽰
first<-c(0.6,0.15,0.3)
income<-c("wage","property","others")
par(mfrow=c(2,2))
barplot(first,main="Default")
barplot(first,names.arg=income,density=10,angle=30,main="density")
barplot(first,horiz=TRUE,main="horiz=TRUE")
x<-barplot(first,col=c("red","green","blue"),ylim=c(0,0.8),main="colors & values")
x
[,1] [1,] 0.7 [2,] 1.9 [3,] 3.1
text(x,first+0.1,labels=as.character(first))
在左上⾓的第⼀幅图形中,采⽤默认的⽅式绘制条状图,由于没有添加条形图的坐标轴标签,我们所获知的信息有限
在右上⾓的第⼆幅图形中,通过参数density=10添加了阴影线,并设置了阴影线的倾斜⾓度angle=30,还增加了条形图的横轴标签,这样,各种收⼊来源⽐较起来就很⽅便
在左下⾓的第三幅图形中,使⽤参数horiz=TRUE,绘制了⽔平条形图
在右下⾓的第四幅图形中,增加了每条矩形的颜⾊,并且通过text()函数增加了每个收⼊来源的具体数值。请注意text()函数中⽂本位置的参数设置 ⽅ 法 first+0.1 , 我们把barplot()函数的结果赋值给x,⽽x的返回值为条形图横坐标的位置。
4. hist()函数绘制直⽅图
hist(x, breaks = "Sturges", freq = NULL, probability = !freq,
include.lowest = TRUE, right = TRUE, density = NULL,
angle = 45, col = NULL, border = NULL, main =
paste("Histogram of", xname), xlim = range(breaks), ylim
= NULL, xlab = xname, ylab, axes = TRUE, plot = TRUE,
labels = FALSE, nclass = NULL, warn.unused = TRUE, ...)
x是数值型向量,即所需要绘制直⽅图的数据集。
breaks参数通过以下⽅式控制直⽅图的单元(cells)数量:
给出⼀个向量,从⽽确定直⽅图单元的区间断点(breakpoints);
给出单个数值,从⽽确定直⽅图的单元数量;
给出计算区间的算法名称的字符串;
⼀个⽤于计算单元数量的函数。
freq和probability均为逻辑判断式,且两者为互斥选项,freq=TRUE时做频率图,否则为概率密度图。当probability=TRUE时,所有矩形的⾯积之和为1
labels是逻辑值,当labels=TRUE时,将添加相应的数值到矩形单元的上⽅。
density参数设置填充矩形条的阴影线(shading lines)的密度,度量单位是每英⼨填充的线条数。缺省模式下不绘制阴影线。angle 参数设定了阴影线的⾓度。
col参数设定了填充矩形条内部的颜⾊,当density为正数时,阴影线的颜⾊由col指定。
border参数设置矩形条边框的颜⾊,当border=FALSE或NA时,将不绘制边框。
如果想要⾃⼰设定坐标,可以使⽤xaxt="n"或yaxt="n"不绘制坐标,然后使⽤低级绘图命令axis来⾃定义坐标
attach(USArrests)
hist(Murder)
str(hist(Murder))
List of 6
$ breaks : num [1:10] 0 2 4 6 8 10 12 14 16 18
$ counts : int [1:9] 1 12 8 7 7 4 6 3 2
$ density : num [1:9] 0.01 0.12 0.08 0.07 0.07
0.04 0.06 0.03 0.02
$ mids : num [1:9] 1 3 5 7 9 11 13 15 17
htmlborder$ xname : chr "Murder"
$ equidist: logi TRUE
- attr(*, "class")= chr "histogram"
detach(USArrests)
5. boxplot()函数绘制箱线图
箱线图:也称为箱须图、盒须图,是利⽤数据中的最⼤值、最⼩值、中位数、下四分位数、上四分位数来绘制数据的⼀种⽅法。
通过箱线图,可以看出数据的分布情况
分散度:上下四分位数之间的差被称为分散度
boxplot(x, ..., range = 1.5, width = NULL, varwidth = FALSE,
notch = FALSE, outline = TRUE, names, plot = TRUE,
border = par("fg"), col = NULL, log = "", pars = list(boxwex
= 0.8, staplewex = 0.5, outwex = 0.5), horizontal = FALSE,
add = FALSE, at = NULL)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论