R语言数据分析系列之五
—— by comaple.zhang
本节来讨论一下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缸利用率低且不够稳定。
时间: 2024-10-10 13:11:44