R语言数据可视化之初级绘图(上)
2017-05-11 20:00
239 查看
1、条形图barplot()
条形图通过垂直的或者水平的条形展示了类别型变量的频数分布。barplot() 可实现条形图的绘制,其调用格式为barplot(x,xlab,yalb,horiz=F,…)
barplot(x,xlab,ylab,besides=F,col,legend,names.arg,…)
第一种用法可画出简单的条形图,其中horiz=F表示条形垂直放置。画图使用的数据为R里自带的数据集mtcars。代码如下:
> fcyl<-table(mtcars$cyl) > barplot(fcyl,xlab="气缸数",ylab="频数",main="垂直的条形图") > barplot(fcyl,horiz=T,xlab="频数",ylab="气缸数", + main="水平的条形图")
画出的图形如下:
第二种用法x为matrix,则为堆砌的条形图或者分组的条形图。其中besides=T为分组条形图,否则为堆砌条形图。代码如下:
>cm<-table(mtcars$cyl,mtcars$am) >barplot(cm,beside=F,xlab="变数箱类型",ylab="气缸数", col=c("red","yellow","green"),legend.text= 4000 rownames(cm), main="堆砌的条形图") >barplot(cm,beside=T,xlab="变数箱类型",ylab="气缸数", col=c("red","yellow","green"),legend.text=rownames(cm), main="分组条形图")
画出的条形图如下:
条形图除了可以对变量的频数进行画图以外,还可以对变量进行折叠后的均值、中位数、标准差等进行画图。棘状图(vcd包spine())是一种特殊的条形图,它是对堆砌的条形图进行了重缩放,每个条形的高度均为1,表示比例。代码如下:
> meanm<-aggregate(mtcars$mpg,by=list(cyl=mtcars$cyl),mean)#根据cyl对mpg进行折叠,求出折叠后的mpg的均值 > barplot(meanm$x,names.arg = meanm$cyl,main="均值条形图",col=3) > library(vcd) > spine(cm,xlab="气缸数",ylab="变数箱类型",main="棘状图")
画出的图形如下:
棘状图可以清楚的看出气缸数为4变数箱类型为0的车所占总数比重大约为30%。
2、饼图pie()
用法如下pie(x,labels,col,…) 。扇形图plotrix包中的fan.plot(),可将每块叠放在一起,方便从直观上比较每块的大小。画出mtcars数据集中气缸数cyl的饼图和扇形图,代码如下:> percent<-round(fcyl/sum(fcyl)*100) #计算每块所占的百分比 > lb<-paste(names(fcyl),"\n",percent,"%",sep="") #为饼图添加百分比标签 > pie(fcyl,labels=lb,main="添加比例值的饼图") > library(plotrix) > fan.plot(fcyl,labels=lb,main="添加比例值的扇形图")
图形如下:
从上图中可以看出气缸数为8的车占到了总数的44%。
3、直方图hist()
直方图可以展示连续型变量的分布,x轴上将值域分为若干组,y轴表示相应值的频数。函数用法如下:hist(x,breaks,freq,…),其中breaks表示分组的组数。画出mtcars中mpg的直方图,代码如下> hist(mtcars$mpg,breaks=12,xlab="油耗量",ylab="频数",main="直方图(breaks=12)",col=8) > hist(mtcars$mpg,breaks=6,xlab="油耗量",ylab="频数",main="直方图(breaks=6)",col=8)
画出的图形如下:
4、核密度图plot(density(x))
核密度估计是用于估计随机变量概率密度函数的一种非参数方法。画出mpg的核密度图,代码如下:> plot(density(mtcars$mpg),main="简单核密度估计图",xlab="mpg") > plot(density(mtcars$mpg),main="填充后的核密度估计图",xlab="mpg") > polygon(density(mtcars$mpg),col="red") #用红色填充图形下面的区域
画出的图形如下 :
核密度图可以用于比较两组之前的差异。使用sm包中的sm.density.compare() 即可实现。用法如下:sm.density.compare(x,factor,…),其中factor是一个分组变量,且需定义为因子。画出不同的气缸数(cyl)下油耗量(mpg)的核密度图,以比较其之间的差别。代码如下:
> cyl1<-factor(mtcars$cyl,levels=c(4,6,8),labels=c("4 cylinder", + "6 cylinder", + "8 cylinder")) > sm.density.compare(mtcars$mpg,cyl1,xlab="油耗量",ylab="密度") > title(main="不同cyl下mpg的核密度估计曲线")#需用title添加图名 > legend(locator(1),fill=c(2:4),levels(cyl1))
画出的图形如下:
5、箱线图boxplot()
箱线图可以展示出连续型变量的5个统计量:最小值,下四分位数,中位数,上四分位数,最大值。通过boxplot()函数实现,用法如下:boxplot(x,….)
boxplot(formula,data=dataframe)
其中第二种用法中的formula可为:y~A,表示类别型变量A的每个取值分别生成y的箱线图;y~A*B,表示类别型变量A,B所有水平的两两组合生成的y的箱线图。例如分别生成cyl=4,6,8下的mpg的箱线图, 代码如下:
> attach(mtcars) > mtcars$cyl.f<factor(cyl,levels=c(4,6,8),labels=c("4","6","8"))#定义为因子 >mtcars$am.f<factor(am,levels=c(0,1),labels=c("auto","standard")) > boxplot(mpg~cyl,xlab="气缸数",ylab="每公里的油耗量",main="mpg~cyl") > boxplot.stats(mpg) #查看构建图形的统计量,可以看出mpg的最大值,最小值等,50%的值落在15.35和22.8之间 $stats [1] 10.40 15.35 19.20 22.80 33.90 $n [1] 32 $conf [1] 17.11916 21.28084 $out numeric(0)
画出的图形如下:
>boxplot(mpg~cyl.f*am.f,data=mtcars,col=c(1,2),main="mpg~cyl.f*am.f",ylab="油耗量")
从上图中可以比较同种cyl下,变速箱不同,油耗量的不同。
相关文章推荐
- Matlab数据可视化(3):一维数据绘图 I
- Jawbone Up 数据的按小时统计及可视化(R 语言实现)
- 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)
- 慕课—R语言之数据可视化—学习笔记 3.4Lattice绘图系统
- 慕课R语言之数据可视化学习笔记——3.3基本绘图系统实战
- 使用wxPython的绘图模块wxPyPlot进行数据可视化
- 利用python进行数据分析-绘图和可视化1
- Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识
- 第五篇:R语言数据可视化之散点图
- 慕课—R语言之数据可视化—学习笔记 3.6ggplot2绘图系统(中)
- 使用wxPython的绘图模块wxPyPlot进行数据可视化
- R语言数据可视化初体验
- 白话空间统计十二:R语言对点数据分析的实现(2)可视化
- Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识
- 第二篇:R语言数据可视化之数据塑形技术
- Matlab数据可视化(4):一维数据绘图 II
- 2015-03-29-绘图和可视化(3)-绘制地图:图形化显示海地地震危机数据
- 第一篇:R语言数据可视化概述(基于ggplot2)
- IBM:gnuplot 让您的数据可视化 自由控制高级图表和数据绘图
- 慕课—R语言之数据可视化—学习笔记 3.6ggplot2绘图系统(下)