多语言展示
当前在线:448今日阅读:2今日分享:38

R语言基础绘图

R语言是用于统计分析、绘图的语言和操作环境。R的统计分析能力突出,有强大的数据展示能力。而 其本质作为编程语言,具有着强大的拓展和开发能力,可以编制自己的函数,或制作独立的统计分析 包、快速实现新算法。
工具/原料
1

R软件可以从其官网下载安装。

2

R自带了一系列的默认包,利用这些默认包,就可以画出一些基础的图形。 下面就介绍一些基础图形的绘制方法,当然,也可能会涉及到一些加载不出来的扩展包,这说明这不 是R自带的,需要先获取并安装install.packages(“包名称”),再下载不是R自带的其他扩展包。

方法/步骤
1

在介绍绘图之前,先介绍一些基础概念 数据结构: 标量(数值型、字符型或逻辑型),向量(储存同类型数据组成的一维数组),矩阵(储存同类型数 据组成的二维数组),数组(存同类型数据组成的多维数组)以及数据框(储存各种类型的数据)等 变量类型: 名义型(没有顺序之分的类别变量,也叫类别型,如type1,type2)、有序型(有顺序的变量,但非 数量关系,如poor,improved,excellent)以及连续型(某个范围内的任意值,如10,11.5,15,20)。

2

条形图可以展示类别型变量的分布情况,使用的函数为barplot(height),其中height为一个向量或 一个矩阵。下面介绍一下基本条形图的绘制方法: #载入vcd包> library('vcd')  #将数据框Arthritis的Improved列提出,制成表格  > counts <- table(Arthritis$Improved) #绘制条形图,定义了横纵坐标轴名,标题,以及颜色 barplot(counts,main='Simple Bar Plot',xlab='Improvement',ylab='Frequency',col=c('lightseagreen', 'lightcoral','mediumpurple'))

3

当然,也可以绘制一些变化的条形图,比如:堆砌条形图或分组条形图等:  #绘制堆砌条形图和分组条形图> barplot(counts,main='堆砌条形图',xlab='Treatment',ylab='Frequency',col=c('lightseagreen', 'lightcoral','mediumpurple'), legend= rownames(counts), ylim=c(0,52) )> barplot(counts,main='分组条形图',xlab='Treatment',ylab='Frequency',col=c('lightseagreen', 'lightcoral', 'mediumpurple'),legend=rownames(counts), beside=TRUE)

4

饼图是由扇形面积来表示组分所占比例,用pie函数实现。下面介绍一下在一幅图中同时绘制三张饼图 的方法: #定义一个2*2的图框> par(mfrow=c(2,2))#定义数据> slices <- c(10,12,4,16,8)> lbls <- c('US','UK','Australia','Germany','France')  #画标准饼图>pie(slices, labels=lbls,main='Simple Pie Chart')#更改图例,添加百分比> pct <- round(slices/sum(slices)*100)> lbls2<- paste(lbls, ' ', pct, '%', sep='') #画第二张图,定义彩虹色,并且添加百分比信息>pie(slices,labels=lbls2,col=rainbow(length(lbls2)),main='Pie Chart with Percentages') #载入plotrix包>library(plotrix)#绘制扇形图>fan.plot(slices, labels=lbls, main='Fan Plot')  直方图通过x轴上将值域分割为一定数量的组,在y轴上显示相应值的频数,可以展示连续型变量的分 布。 #将mtcar数据集中的mpg列挑出来> x <- mtcars$mpg#绘制直方图,定义x分组数,颜色以及坐标轴名称> h<-hist(x,breaks=12,col='red',xlab='MilesPer Gallon',main='Histogram with normal curve and box') #构造正态曲线数据> xfit <- seq(min(x),max(x),length=40)> yfit <- dnorm(xfit,mean=mean(x),sd=sd(x)) > yfit <- yfit*diff(h$mids[1:2])*length(x) #绘制正态曲线> lines(xfit,yfit,col='blue',lwd=2) #绘制外层边框> box()

5

箱线图通过绘制连续型变量的五数总括(最小值、下四分位数、中位数、上四分位数、最大值),描 述了连续型变量的分布。同时,在一副图中并列放置多组样品的箱线图,可以直观的进行跨组比较。 代码如下: #用mtcars数据集里的mpg列作为y坐标,用cyl列作为分组方式进行箱图绘制> boxplot(mpg~cyl,data=mtcars,main='Car Mileage Data',xlab='Number of Cylinders', ylab='Miles Per Gallon',col=c('red','yellow','green'))

6

散点图可以描述两个连续型变量间的关系。并且经过一些拟合,可以探索两个变量之间的关系:> attach(mtcars)#绘制散点图,定义点的类型、横纵坐标轴名以及标题> plot(wt,mpg,main='Basic Scatter plot of MPG vs. Weight',xlab='Car Weight (lbs/1000)',ylab='Miles Per Gallon',pch=19) #添加最佳拟合的线性直线,并定义颜色,线型,线宽>abline(lm(mpg~wt),col='red',lwd=2,lty=1) #添加平滑的曲线,并定义颜色,线型,线宽>lines(lowess(wt,mpg),col='blue',lwd=2,lty=2) 也可以添加第三个连续型变量,拓展成为三维散点图。#加载scatterplot3d包> library(scatterplot3d)> attach(mtcars)#绘制三维散点图> scatterplot3d(wt, disp, mpg, pch=16,highlight.3d=TRUE, type='h',main='3D Scatter Plot with VerticalLines')

注意事项
1

R中很基础的绘图部分

2

R能做的远远不止这些,今天讲的只 是想让大家了解R是如何进行绘图的,起到抛砖引玉的作用,R的4000多个包还需要大家去挖掘啦!

推荐信息