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函数是一个调色工具,大家自行百度吧,这个函数很简单。接下来看看效果图。
image4
饼还有3D的
想要绘制3D饼图,首先要有 plotrix 软件包。
install.packages('plotrix')
还是一行代码画图:
library(plotrix)
pie3D(x,labels = labels5,explode = 0.03,main = 'hello world')
explode 这个参数表示每一块扇形饼的间距。
image今天就到这里吧,到了说再见的时刻。
学习一门新东西的关键是能够做到坚持,希望大家都能坚持住,为了前方的大饼,为了诗和远方,冲鸭!!!
为大家推荐一本非常经典的入门书《introduction to R》,即使学的不错也可以看看,毕竟老子说过:温故而知新,可以为师矣。
后台回复:我爱你。即可得到这本经典的书。
下期再见。
你可能还想看
等你很久啦,长按加入古同社区
image
网友评论