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()
至此,由简单表格转化的图表基本完成。不过从图像来看,好像东城区涨幅最惊人,但是通过表格,其实东城区的涨幅并非最高。因此我们可能需要用条形图再显示。这个就需要我继续努力啦。
小白作业,欢迎提各种意见。