R语言:表格的线图转化

R语言:表格的线图转化

最先选取的是北京各区普通住宅成交十年(2016年及2006年)涨幅对比。这张图比较plain,主要拿来练习:

1.数据表格的基本整理及计算

2. 数据的初步分析

3.线图的基本绘图


图片来自网络

图片输入为excel,然后倒入到r程序中。

install.packages("openxlsx")

library(openxlsx)

readFilePath<-"E:/citystock.xlsx"

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

按照短平快的思路,首先把线图做出来

plot(mydata$y2006,col="red",ylim=c(0,95000),type="b")lines(mydata$y2016,col="blue",type="b")

lines单独不能绘图,所以要plot先行。


图片版权为作者所有

2. 按照原始的表格,各区排名高低错落,看不出来趋势,所以插入order语句按照2006年的均价进行排序。然后检查一下。

mydata<-mydata[order(mydata$y2006),]

mydata

3.修改plot及lines语句,进行美化,线条及图例进行区分,因为区名是比较长的中文,所以字体要进行竖排及缩小,las=1,cex为0.5。

加入2006年及2016年均价的中间值(黄色线),作为参考。

mydata$mid<-(mydata$y2006 mydata$y2016)%/%2

plot(mydata$y2006,col="red",ylim=c(0,95000),type="b",xaxt="n",ylab="price")

lines(mydata$y2016,col="blue",type="b",pch=17,las=1)

lines(mydata$mid,col="gold",type="b",pch=16)

axis(1,las=2,at=c(1:16),labels=mydata$city,cex.lab=0.5)


4. 加入2006年,2016年各自的平均线,颜色为灰色及粉红。这样哪个区是超出的,一目了然。

abline(h=(mean(mydata$y2006) mean(mydata$y2016))%/%2,col="grey")

abline(h=mean(mydata$y2016),col="pink")

abline(h=mean(mydata$y2006),col="pink")

5. 加入图例legend,,在2016年均线上加入互动标注(点击后才出现),以及缺省栅格

legend("topleft",bty="n",horiz=TRUE,pch=c(17,16,21),c("2016","mean","2006"),col=c("blue","gold","red"),cex=0.8)

text(locator(1),"2016均价",4,cex=.8,color="brown")

grid()

至此,由简单表格转化的图表基本完成。不过从图像来看,好像东城区涨幅最惊人,但是通过表格,其实东城区的涨幅并非最高。因此我们可能需要用条形图再显示。这个就需要我继续努力啦。数据分析培训

posted @ 2017-02-17 11:03  刘小子  阅读(114)  评论(0编辑  收藏  举报