R语言基础绘图

2025-11-08 08:06:02

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 BarPlot",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 curveand 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") 

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢