美文网首页此地古同R语言
R语言基础:饼图的绘制

R语言基础:饼图的绘制

作者: 鲨瓜 | 来源:发表于2018-10-31 21:23 被阅读1次

    image

    学了一段时间的 Python 和 R,总感觉 P 公子和 R 小姐对在下无感。

    真的无感吗?

    不是他们对在下无感,是在下的诚意还不够啊。基础不牢,地动山摇。

    不知道你们在码代码时会不会总是出现 bug,瞅一瞅,这都说的些啥呀?向量懵、数组懵、矩阵懵、数据框懵。

    马上摔键盘,老子不学了。下一秒还不是乖乖坐在电脑屏幕前仔细推敲到底哪里出错了。

    真是代码虐我千百遍,我待代码如初恋。

    其实不仅仅是 Python 和 R,学习任何计算机语言都是这样,并不是你的努力程度不够,只是你的方向出现了偏差。

    高级代码就像诗和远方,它们固然重要,但我们更要脚踏实地,努力学好每一点基础,这样才会在实践的过程中尽量少出差错。

    进而培养出内在强大的自信心,养成良好的编程习惯,奔向坦荡光明前程

    1

    读数据

    在对数据做任何处理之前,甭管是画图、数据挖掘、数据分析,我们所做的第一件事就是读取数据,将我们得到的数据导入 RStudio。

    当然有很多种方法,很多个工具包,但我们仍旧从最基础的开始,记住那句话:基础不牢,地动山摇。

    data = read.csv('d://aq.csv',stringsAsFactors = FALSE)
    

    这里是读取 .csv 格式文件,第一个参数 'd://aq.csv' 表示文件存储的位置,这里我是把文件存储在 d 盘下,文件名是 aq.csv 。

    这里需要注意的是 反斜杠 / 代表转义字符,像平常看到的 /n 代表换行,为了避免歧义,很多编程语言写文件路径时用 双反斜杠 // 或者 \ ,就是说读取代码如下写也可以。

    data = read.csv('d:\aq.csv',stringsAsFactors = FALSE)
    

    而 stringsAsFactors 不设置时,读取有中文文字的数据时,会出现将文字转化为因子的现象。所以最好还是设置一下。

    2

    数据简单加工一哈

    data = as.tibble(data)
    head(data)
    
    image

    上面两句命令,第一句是转化 data 的数据类型,同样的命令还有 as.integer (转换成整数型)等等,大家可自行百度。

    第二句命令就是查看数据的前几行。

    咱们用的数据是我用Python从真气网爬取的14年到18年的数据,数据太多,接下来我们只把17年的数据提取出来。用的还是矩阵(matrix)的基础知识。

    last_year = data[1035:1399,]
    

    1035:1399代表从1035行到1399行,逗号后边啥都没填,代表提取全部列。

    用最基础的 summary 函数可以看看我们数据的概况。

    summary(last_year)
    
    image

    行提取完了,有date,AQI,ql,PM2.5,PM10,SO2,CO,O3八列,我们就看看ql这一列吧。将它单独提取出来,并做简单的字符串汇总。

    ql = as.tibble(table(last_year$ql))
    

    前面讲的summary对数字处理的很好,但table函数对字符串处理的更好,能统计相同字符串出现的次数,并做成数据框,相当人性化。

    x = as.vector(as.matrix(ql[,2]))
    labels = as.vector(as.matrix(ql[,1]))
    

    上面这两句用了哪些基础内容呢?矩阵提取数据,转换数据类型。数据类型一定要转换成向量的形式,因为用 pie 函数画饼图时,参数必须是向量。

    x 是我们的数据,而 labels 是我们要做的数据标签。

    再对标签处理一下,布置作业,大家自行查一下 paste 函数的用法吧

    labels5 = paste(labels4,':',round(x/sum(x)*100),'%',sep = '')
    

    3

    画饼充饥

    如果我告诉你一行代码就行了,你会惊讶吗?大概没什么了不起,很多语言都可以。pie的基本语法结构如下:常用的就只有 x , labels , col , main

    pie(x, labels, radius, main, col, clockwise,main)
    
    pie(x,labels = labels5,col = rainbow(6,alpha = 1),main = 'hello world')
    
    • x - 是包含饼图中使用的数值的向量。

    • labels - 用于描述切片的标签。

    • main - 用来表示图表的标题。

    • col - 表示调色板。

    rainbow函数是一个调色工具,大家自行百度吧,这个函数很简单。接下来看看效果图。

    image

    4

    饼还有3D的

    想要绘制3D饼图,首先要有 plotrix 软件包。

    install.packages('plotrix')
    

    还是一行代码画图:

    library(plotrix)
    pie3D(x,labels = labels5,explode = 0.03,main = 'hello world')
    

    explode 这个参数表示每一块扇形饼的间距。

    image

    今天就到这里吧,到了说再见的时刻。

    学习一门新东西的关键是能够做到坚持,希望大家都能坚持住,为了前方的大饼,为了诗和远方,冲鸭!!!

    为大家推荐一本非常经典的入门书《introduction to R》,即使学的不错也可以看看,毕竟老子说过:温故而知新,可以为师矣。

    后台回复:我爱你。即可得到这本经典的书。

    下期再见。

    你可能还想看

    等你很久啦,长按加入古同社区

    image

    相关文章

      网友评论

        本文标题:R语言基础:饼图的绘制

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