R语言:表格的线图转化

作者: 只是不在意 | 来源:发表于2017-02-04 21:42 被阅读0次

    上了猴子的大数据课第三讲后,因为有预习的缘故,程序跑的比较顺利。按照课后布置,用相似的思路,进行实践分析。

    最先选取的是北京各区普通住宅成交十年(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()

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

    小白作业,欢迎提各种意见。

    相关文章

      网友评论

        本文标题:R语言:表格的线图转化

        本文链接:https://www.haomeiwen.com/subject/bqojittx.html