01
现如今啊,要想把自己的道理讲给别人听,如果不想被说成口说无凭,那么最好的办法就是罗列上一系列的数据,这个时候你就要注意了!!!无论当你准备要写一篇论文,或是准备给领导做一份汇报,假如不想看到你的领导或者读者的表情是这样的
那你最好的办法就是给你那冗杂的数据化个妆,哦不,画个图!!!
02
说到给数据作图,R绝对是我见到过的最酷的软件,光说无用,上图!
03
以上这些图其实只需要R中的一个包就能完成。了解R的朋友知道,得力于R开源的特性,在R中存在非常多优秀的包,而要说到绘图,就不得不提到一个神奇的包ggplot2,这个包在我看来几乎是无所不能而使用起来又十分简单。(PS:听说作者又发了大招,开发了一个新的包,据说做出的图可以实现交互功能,膜拜大神!)
刚刚说了ggplot好像无所不能,使用起来又十分简单,我这么说可是有依据滴!
大家知道R是一种语言,所以如果让程序员来表达画图,语言大概是这样滴:在这里画一条直线,长度是10cm,宽度是10mm,颜色用多少多少号蓝色,倾斜角度多少多少度@#¥%&*,按照这种情况下去,画完一张图我可能要猝死。
但是实际中呢,我们在应用中只想表达,把这些线按照职业类型不同上个色,或者把这些点按照性别的不同对应不同的形状,还有可能你发现一幅图里面的散点图太复杂了,你想把这里面的点按照某个属性拆分成几个小图,ggplot2告诉你,这些都不是问题!你只需要想你要做什么,剩下的就交给它吧!嗯对就是这么任性,甚至你还可以把已经画好的笛卡尔坐标系下的图再加几行代码就变成极坐标系下的图了,就是这么酷!
04
下面举一个小例子来看看:
diamonds是ggplot2包里面自带的关于钻石的数据:
这份数据包含了54000颗钻石的价格和质量的信息,我在上面的图里只截了13颗,其中,包括的属性依次是carat(克拉重量),cut(切工),color(颜色),clarity(纯净度),深度,钻面宽度,以及x,y,z分别是钻石的长宽高。
假如我们要看看 carat和price两者之间的关系,可以直接在面板上输入
qplot(carat,price,data=diamonds) #qplot是quick plot的简写,也就是快速绘图,data这个参数表达了要从diamonds这个数据集中寻找变量,然后看看结果吧!
好像发现,两者之间有很强的相关关系,而且这种关系好像是指数型的,我们可以对这两个变量取一下log再画图看看。只要输入
qplot(log(carat),log(price),data=diamonds)
看看结果吧!
我们的猜测好像很有道理呢!
我们大概认为钻石的重量和其体积成正比吧!来看看
qplot(carat,x*y*z,data=diamonds)
好像是诶,不过有几个离群点,我猜那可能是jia钻石,xixi
刚才说过的标记颜色和形状我们也来看看吧,下面的dsmall是我从这54000个数据中随机抽取的100个样本。
看看这个
qplot(carat,price,data=dsmall,colour=cut)#这就是根据变量cut的属性不同分配不同颜色啦!
还有这个
qplot(carat,price,data=dsmall,shape=color)#这就是根据变量color的不同来选择不同的形状表达喽!
似不似操作很简单又很漂亮的图呢!其实ggplot2功能十分强大,你甚至可以按照自己的意愿创造你想要的那种图出来。总之,你那么美,图要更美!关于ggplot2的学习内容会持续更新,欢迎交流!