条形图
条形图用矩形条来表示数据,条的长度与变量的值成比例,在R语言中可以使用函数barplot()来创建条形图,可以在条形图中绘制垂直和水平条,并且每个条形都可以设置成不同的颜色。
R语言中创建条形图的基本语法是:
barplot(H,xlab,ylab,main,names.arg,col)
barplot中的参数描述如下:
- H表示我们用到的数据,可以是一个向量或者是一个矩阵(数值型)。
- xlab,ylab分别表示x,y轴的标签。
- main表示的是条形图的标题。
- names.arg表示的是每个条下的名称的向量。
- col用来提供每个条需要的颜色。
barplot示例如下(legend函数用来生成图例):
>colors<-c("blue","pink","yellow") >country<-c("china","japan","USA","UK","korea") >country<-c("China","Japan","USA","UK","Korea") >regions<-c("East","West","North") >value<-matrix(c(2,3,4,7,3,12,9,9,6,5,10,5,8,7,9),nrow=3,ncol=5,byrow=TRUE) >barplot(value,xlab="country",ylab="regions",names.arg=country,col=colors) >legend("topright",regions,cex=1,fill=colors)
结果如下:
箱线图
箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图,箱线图是数据集中的数据分布良好的度量,它将数据集分成三个四分位数。 此图表表示数据集中的最小值,最大值,中值,第一四分位数和第三四分位数。 它还可用于通过绘制每个数据集的箱线图来比较数据集之间的数据分布。
R语言中创建箱线图的基本语法是:
boxplot(formula, x, data, notch, varwidth, width, range, names, main,col)
boxplot中的参数描述如下:
- formula是一种类似于y~grp的公式,其中y是要画的变量,grp是要描述分组的变量。
- x是向量,设置用于画图的值。
- data是一个数据框或者列表,其中定义了formula所使用的的变量。
- notch是一个bool类型的逻辑值,若为TRUE则会在箱子上绘制一个缺口。
- varwidth也是一个逻辑值,若为TRUE则会按照比例去取绘制箱子的宽度,若为FALSE则所有的箱子是同样的宽度。
- width是定义箱子宽度的一个数值。
- range用于定义从箱子延伸出来的胡须的最大长度。
- names将要打印的每一个箱线图的标签。
- main箱线图的标题。
- col箱线图的背景色。
boxplot()函数的示例如下(以R语言中自带的mtcars数据集为例):
boxplot(mpg~cyl, data=mtcars, xlab="Number of Cylinders", ylab="Miles Per Gallon", main="Mileage Data",notch=TRUE, varweight=TRUE, col=c("pink","green","red"), names=c("High","Medium","Low"))
结果如下:
直方图
直方图是一种很常见的图形,其形状看似类似于第一节中讲到的条形图,其本质区别在于直方图讲数据值分组为连续的范围,直方图中的每个柱的高度表示取值范围内的数值的个数。
R语言中创建直方图的基本语法是:
hist(v,main,xlab,xlim,ylim,breaks,col,border)
hist中的参数描述如下:
- v是我们要使用的向量(数值型)
- main表示图表的标题。
- xlab给出x轴的描述。
- xlim,ylim用于给出x,y轴上的数值范围。
- breaks用于表示每个条的宽度。
- col表示颜色。
- border用于设置每个矩形的边框颜色。
hist()函数的使用方法如下:
hist(v,xlab="count",xlim=c(0,30),ylim=c(0,5),breaks=5,col=c("blue","pink","brown","green","red"),border="black")
结果如下:
折线图
折线图是通过一些线段去把很多散点连接起来的图形,通常用于表示某个数据发展的趋势。
在R语言中创建折线图的基本语法是:
plot(v,type,col,xlab,ylab,pch,cex, lty, lwd)
plot中的参数描述如下:
- v依旧是我们要是用的向量(数值型)
- type采用值"p"仅绘制点,"l"仅绘制线,"o"绘制点和线。
- pch用于制定绘制点时使用的符号
- cex用于表示符号的大小,默认为1,其他数字按比例缩放。
- lty用于制定线条的类型
- lwd用于制定线条的宽度,默认值为1。
绘制折线图的plot()函数的如下:
>v<-c(4,7,13,5,16) >plot(v,xlab="year", ylab="num", type="o", col="blue", pch=18, lty=4)
结果如下:
上述代码中我们只画了一条折现,R语言中提供了lines()函数可以在同一张表上绘制多条直线。
在上述代码后继续添加如下代码:
>t=c(4,5,11,8,14) >lines(t, type="o", col="green")
得到结果:
散点图
散点图实在一个平面上绘制坐标点得到的图形,绘制该图形时我们要得到数据中每个点对应的坐标。
在R语言中绘制散点图的基本语法是:
plot(x, y, main, xlab, ylab, xlim, ylim, axes)
我们可以看到绘制散点图的函数和绘制折线图的函数名称是一样的,这是因为折线图是基于多个点而建成的,所以可以说绘制直线图需要建立在散点图之上。
plot的参数补充如下:
- xlim是用于绘图的x的值的极限。
- ylim是用于绘图的y的值的极限。
- axes指示是否应在绘图上绘制两个轴。
plot绘制散点图的示例如下(这里我们采用R语言再带的mtcars数据集):
>input<-mtcars[,c("wt","mpg")] >plot(x=input$wt,y=input$mpg, +xlab="Weight", +ylab="Milage", +xlim=c(2.5,5), +ylim=c(15,30), +main="Weight vs Milage"+ )
结果如下:
散点图矩阵
有两个以上的变量的时候,我们想找到一个变量和其余变量之间的相关性,此时使用散点图矩阵。
R语言中创建散点图矩阵的语法如下:
pairs(formula, data)
pairs()函数的参数描述如下:
- formula表示成对使用的一系列变量。
- data表示将从其获取变量的数据集
pairs绘制散点图矩阵的示例如下:
pairs(~wt+mpg+disp+cyl,data=mtcars, main="Scatterplot Matrix")
结果如下:
饼状图
饼图是将值表示为具有不同颜色的圆的切片,能够更直观的展示数据的分布情况。
R语言中创建饼状图的语法如下:
pie(x, labels, radius, main, col, clockwise)
pie()函数参数的描述如下:
- x是包含饼图中使用的数值的向量。
- labels用于给出切片的描述。
- radius表示饼图圆的半径(值-1和+1之间)。
- main表示图表的标题。
- col表示调色板。
- clockwise是指示片段是顺时针还是逆时针绘制的逻辑值。
pie绘制饼状图的示例如下:
>x<-c(33,44,12,20) >labels<-c("beijing", "shanghai", "guangzhou", "shenzhen") >pie(x, labels=labels, main="Pie City", col=rainbow(length(x)))
结果如下:
3D饼状图
为了更好的展示数据分布的情况,R语言在饼图的基础上也提供了3D饼图的绘制方法。绘制3D饼图,我们需要加载plotrix工具包中的pie3D()函数。
pie3D()函数的示例如下:
>install.packages("plotrix") >library(plotrix) >x<-c(22,42,12,30) >labels<-c("beijing","shanghai","guangzhou","shenzhen") >pie3D(x,labels=labels,main="pie3D example", explode=0.1)
结果如下:
以上就是对R语言中几种基础的图形的介绍,高阶图形会在后面的文章中单独讲解。