R语言:表格的点图转化

继续练习,用dotchart语句绘制点图。

步骤1.将原图重新输入为excel表,原图是20多个城市2016年12月的供求比(sdratio),库存(stock)的比较。另外还有同比等一些数据,我先简化掉了。

R语言:表格的点图转化_第1张图片

install.packages("openxlsx")

library(openxlsx)

readFilePath<-"F:/citystock.xlsx"

mydata<-read.xlsx(readFilePath,"Sheet1")

然后就可以绘图了,还满简单的。

dotchart(mydata$stock,labels=mydata$city,cex=0.7)

R语言:表格的点图转化_第2张图片

仔细看一下原图表可以发现,虽然城市很多,但供求比都在0.5-1之间,如果我们想要排序绘图,除了先在excel或者矩阵里排序,也可以直接利用dotchart的分组功能。

dotchart(mydata$stock,labels=mydata$city,groups=mydata$sdratio,col=rainbow(mydata$sdratio*10),pch=19,cex=0.7)

各个城市就自动按照供求比的数值分类了。

R语言:表格的点图转化_第3张图片

但这里遇到了一个坑,按照供求比*10得出整数,赋予彩虹色值,但颜色与供求比的分组并不统一,不知道是怎么回事?

只好比较笨的各个赋值

mydata$color[mydata$sdratio==1]<-"red"

......

mydata$color[mydata$sdratio==0.5]<-"hotpink"

dotchart(mydata$stock,labels=mydata$city,groups=mydata$sdratio,col=mydata$color,pch=19,cex=0.7)

结果就很好了。

R语言:表格的点图转化_第4张图片

在某些案例里,并不是按照数值分类,而是按照产品A,产品B,产品C有不同的列,这样可以运用melt函数,将列打散变为:

城市1 产品A 

城市1 产品B

城市1 产品C

....

install.packages("reshape");library(reshape) #需要安装reshape包

data2<-melt(mydata)

基本上dotchart语句还是比较简单的,它和散点图(plot)的区别是,散点图是很明确的(x,y)来定位,进而可做线性回归等分析。而dotchart可以只有一个维度,而利用另一个维度进行分组。

之前R语言绘图的相关展现方法

R语言:表格的线图转化

R语言:表格的条形图转化

你可能感兴趣的:(R语言:表格的点图转化)