本文主要介绍R语言中基本图形的绘制,包含以下几种图形:1.条形图 2.饼图 3.直方图 4.核密度图 5.箱线图 6.点图

1.直方图的绘制

 



#直方图绘制
barplot(height)
#height是一个向量或者矩阵
a<-c(1,2,3,4,5,6)
#垂直直方图
barplot(a,main="Simple Bar Plot",xlab="Improtved",ylab="Frequency")
#水平直方图
barplot(a,main="Simple Bar Plot",xlab="Improtved",ylab="Frequency",horiz=TRUE)



 

 

R语言如何debug R语言如何绘制图表_饼图

R语言如何debug R语言如何绘制图表_3D_02

 


#barplot(height)
#height为矩阵时,绘制的是堆砌条形图或分组条形图
library(vcd)
counts<-table(Arthritis$Improved,Arthritis$Treatment)
#绘制堆叠图
barplot(counts,main="Stacked Bar Plot",xlab="Treatment",ylab="Frquency",col=c("red","yellow","green"),legend=rownames(counts))
#绘制分组图
barplot(counts,main="Grouped Bar Plot",xlab="Treatment",ylab="Grequency",col=c("red","yellow","green"),legend=rownames(counts),beside=TRUE)
#下面为counts的值

Placebo Treated
None 29 13
Some 7 7
Marked 7 21


R语言如何debug R语言如何绘制图表_r语言_03

R语言如何debug R语言如何绘制图表_r语言_04


#直方图的微调
#增加Y边界的大小
par(mar=c(5,8,4,2))
#旋转条形的标签
par(las=2)
counts<-table(Arthritis$Improved)
barplot(counts,main="Treatment Outcome",horiz=TRUE,cex.names=0.8,names.arg=c("No improved","some Improved","Marked Improved"))


R语言如何debug R语言如何绘制图表_r语言_05


#简单的棘状图
library(vcd)
attach(Arthritis)
counts<-table(Treatment,Improved)
spine(counts,main="Spinogram Example")
detach(Arthritis)


R语言如何debug R语言如何绘制图表_饼图_06

2.饼图的绘制


#饼图的绘制
pie(x,labels)
#x为一个非负值向量,表示每个扇形的面积,labels为各个扇形标签的字符型向量
par(mfrow=c(2,2))
slices<-c(10,12,4,16,8)
#基本的饼图
lbls<-c("UK","US","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")
#3D饼形图
library(plotrix)
pie3D(slices,labels=lbls,explode=0.1,main="3D Pie Chart")
#从表格创建饼图
mytable<-table(state.region)
lbls3<-paste(names(mytable),"\n",mytable,sep="")
pie(mytable,labels=lbls3,main="Pie Chart form a Table")


R语言如何debug R语言如何绘制图表_饼图_07


#绘制容易看出大小的饼图
library(plotrix)
slices<-c(10,12,4,16,8)
lbls<-c("US","UK","Australia","Germany","France")
fan.plot(slices,labels=lbls,main="Fan Plot")


R语言如何debug R语言如何绘制图表_3D_08

 

 

 3.绘制直方图

直方图:通过在X轴上将值域分割为一定数量的组,在Y轴上显示相应的频数,展示连续变量的分析


#绘制直方图
par(mfrow=c(2,2))
#简单的直方图
hist(mtcars$mpg)
#设置直方图的颜色,添加坐标轴标签
hist(mtcars$mpg,breaks=12,col="red",xlab="Miles Per Gallon",
     main="Colored histogram with 12 bins")
#添加轴须图
hist(mtcars$mpg,freq=FALSE,breaks=12,col="red",xlab="Miles per Gallon",main="Histogram ,rug plot,density curve")
rug(jitter(mtcars$mpg))
lines(density(mtcars$mpg),col="blue",lwd=2)
#添加正态分布密度曲线和外框
x<-mtcars$mpg
h<-hist(x,breaks=12,col="red",xlab="Miles Per 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()
#上述图形比较复杂,后续结合具体实例深入研究


R语言如何debug R语言如何绘制图表_直方图_09

4.绘制核密度图

核密度:核密度估计师用于估计随机变量概率密度函数的一种非参数方法


#绘制核密度图
par(mfrow=c(2,1))
d<-density(mtcars$mpg)
plot(d)
d<-density(mtcars$mpg)
plot(d,main="kernel Density of Miles Per Gallon")
polygon(d,col="red",border="blue")
rug(mtcars$mpg,col="brown")


R语言如何debug R语言如何绘制图表_直方图_10

 

 


#一个图形中绘制多个核密度图
library(sm)
attach(mtcars)
cyl.f<-factor(cyl,levels=c(4,6,8),labels=c("4 cylinder","6 cylinder","8 cylinder"))
sm.density.compare(mpg,cyl,xlab="Miles Per Gallon")
title(main="MPG Distribution by Car Cylinders")
detach(mtcars)


R语言如何debug R语言如何绘制图表_饼图_11

5.箱形图

箱形图:通过绘制连续性变量的五数总括,即最小值、下四分位、中位数、上四分位数、最大值


boxplot(mtcars$mpg,main="Box plot",ylab="Miles per Gallon")


R语言如何debug R语言如何绘制图表_直方图_12


#一个图中绘制多个箱形图
boxplot(formula,data=data.frame)
boxplot(mpg~cyl,data=mtcars,main="Car Mileage Data",xlab="Number of Cylinders",ylab="Miles Per Gallon")


R语言如何debug R语言如何绘制图表_3D_13


#凹槽型箱形图
boxplot(mpg~cyl,data=mtcars,notch=TRUE,col="red",main="Car Mileage Data",xlab="Number of Cylinders",ylab="Miles Per Gallon")


R语言如何debug R语言如何绘制图表_直方图_14

 


#绘制交叉因子箱形图
mtcars$cyl.f<-factor(mtcars$cyl,levels=c(4,6,8),labels=c("4","6","8"))
mtcars$am.f<-factor(mtcars$am,levels=c(0,1),labels=c("auto","standard"))
boxplot(mpg~am.f *cyl.f,
        data=mtcars,
        varwidth=TRUE,
        col=c("gold","darkgreen"),
        main="MPG Distribution by Auto Type",
        xlab="Auto Type",
        ylab="Miles Per Gallon")


R语言如何debug R语言如何绘制图表_R语言如何debug_15


#小提琴箱形图
library(vioplot)
x1<-mtcars$mpg[mtcars$cyl==4]
x2<-mtcars$mpg[mtcars$cyl==6]
x3<-mtcars$mpg[mtcars$cyl==8]
vioplot(x1,x2,x3,names=c("4 cyl","6 cyl","8 cyl"),col="gold")


R语言如何debug R语言如何绘制图表_直方图_16

6.点图


#水平刻度上绘制大量有标签值的方法
dotchart(x,labels)
dotchart(mtcars$mpg,labels=row.names(mtcars),cex=0.7,main="Gas Mileafe for car Models",xlab="Miles Per Gallon")


R语言如何debug R语言如何绘制图表_r语言_17


#进行调整的点图
x<-mtcars[order(mtcars$mpg),]
x$cyl<-factor(x$cyl)
x$color[x$cyl==4]<-"red"
x$color[x$cyl==6]<-"blue"
x$color[x$cyl==8]<-"darkgreen"
dotchart(x$mpg,labels=row.names(x),cex=0.7,groups=x$cyl,gcolor="black",color=x$color,pch=19,main="Gas Mileage for car Models",xlab="Miles Per Gallon")


R语言如何debug R语言如何绘制图表_饼图_18

以上简单探索了R语言中的集中常用图形,后续要根据具体业务需要灵活运用。