R语言数据分析系列之五
本节来讨论一下R语言的基本图形展示,先来看一张效果图吧。
这是一张用R语言生成的,虚拟的wordcloud云图,具体实现细节请参见我的github项目:https://github.com/comaple/R-wordcloud.git
好了我们开始今天的旅程吧:
本节用到的包有:RColorBrewer用来生成序列颜色值, plotrix三维图形
本节用到的数据集:vcd包中的Arthritis数据集
数据集
install.packages("vcd")
library('vcd')
install.packages(plotrix) #将图形包也一并安装了
library(plotrix)
data(package='vcd') # 查看vcd包得全部数据集
class(Arthritis) # 查看数据集类型
names(Arthritis) # 查看列名
arth <- Arthritis # 复制一份
arth[1:10,] #查看前10行数据
柱状图
#该数据集最后一列Improved为因子型数据。
table(arth$Improved) #查看因子水平的count值
col <- c(brewer.pal(9,'YlOrRd')[1:9]) #设置颜色序列
barplot(table(arth$Improved),col=col,xlab='improved',ylab='count',main='StatisticsOf Improved') #绘制柱状图
barplot(table(arth$Improved),col=col,horiz=T,xlab='count',ylab='improved',main='StatisticsOf Improved') #水平柱状图
barplot(counts,col=col,legend=rownames(counts),width=0.1) #堆砌条形图
barplot(counts,col=col[1:3],legend=rownames(counts),width=0.1,beside=T)#分组条形图
饼图
par(mfrow=c(1,2)) # 定义横向画布,两格布局
label <- c('壮年','中年','长辈','老年')
ages <- cut(arth$Age,breaks=c(20,30,50,70,100),labels=label)#将年龄数据离散化
pie(table(ages),family='STKaiti') # 画出饼图
pie(table(ages),labels=paste(levels(ages),':',round(table(ages)/sum(table(ages))*100,2),'%'),family='STKaiti',main='关节炎发病率年龄段占比')
pie3D(table(ages),labels= paste(round(table(ages)/sum(table(ages))*100,2),'%'),family='STKaiti',main='关节炎发病率年龄段占比',explode=0.1)# 3D 饼图
直方图
我们采用mtcars数据集来进行图形绘制:
h <- hist(mtcars$mpg,breaks=12,col=col,freq=F,xlab='MilesPer Gallon',main='Histogram Of Car Gallon,Density curve') # 绘制直方图
lines(density(mtcars$mpg),col='blue',lwd=2)#添加核密度图
如果要单独绘制和密度图的话可以这样:
plot(density(mtcars$mpg),main='DensityOf Car Gallon')
图中我们可以看到,我们得核密度函数采用的高斯核,方差为2.477,样本采样为32个。
箱型图
箱线图,通过绘制连续型变量的五数总括,即最小值(对应图中最下面那条线)、下四分位数(对应第二条线)、中位数(对应最中间那条线)、上四分位数(对应箱子上边沿) 以及最大值(对应最上面那条线),描述了连续型变量的分布。并且可以将离群点列出。
例如我们还拿mtcars数据集,其中mpg是每百公里油耗,cyl是发动机汽缸数,要对比不同得汽缸数对每加仑汽油行驶的公里数的影响就可以这样作图:
boxplot(mpg ~ cyl,data=mtcars,main='Car Milage Data',xlab='Number Of Cylinder',ylab='Miles Per Gallon')
从图中我们可以明显看到,4缸发动机有效利用率最高,6缸的最稳定,8缸利用率低且不够稳定。