烟草味道|手把手教你绘图,R可视化:ggplot2初探

其实最基本的Rbase的画图能力已经非常不错了 , R中也还有很多画图的包 , 像grid和lattice , 本篇文章首先给大家写ggplot2就是因为它的语法非常的容易记 , 非常的直观 , 而且画图理念非常适合新手 。
什么叫gg呢?就是grammarofgraphics , 什么意思?就是作图的语法 , 相当于我们掌握了ggplot就掌握了作图的语法 , 就好比我们只要掌握了英语语法 , 只需要几个单词就能写出成千上万的句子 , 掌握了ggplot2我们也可以很容易的完成成千上万的图!今天就手把手教大家画一个 。
ggplot2图像的构成学习ggplot2的第一步就是了解图像的构成 , 看下面这个由ggplot2画的图:
Data:画图用的数据 , 这个图其实是美国谋杀数据的一个总结 , 我们将其称作图的数据部分 。 Geometry:可以看出来 , 这个图是一个散点图 , 这个就叫做图的Geometry , 其他的Geometry还有barplot,histogram,smoothdensities,qqplot,andboxplot等等 。 Aestheticmapping:这个图其实用了很多的信号来表达数据 , 最明显的就是x-axisandy-axis , 还有不同的颜色来表示不同的区域等等 , 这些都称为Aestheticmapping 。了解了上面的基础知识我们现在就通过代码将上图画出来!!一步一步来 , 你一定可以的!
画图实操第一步:生成一个ggplot2对象library(dslabs)data(murders)p
光定义了geometry不行呀 , 我们得指定数据呀 , 所以我们需要在geometry中指定用哪些数据画这个散点图:
murders%>%ggplot()+geom_point(aes(x=population/10^6,y=total))第三步:设置AestheticmappingsAestheticmappings就是告诉ggplot2我们的数据怎么样和图的特征连起来 , 比如轴、颜色等等都是Aestheticmappings 。 我们是用aes来定义Aestheticmappings , 而这个aes通常又会作为geometry的参数 。 比如下面的代码:
murders%>%ggplot()+geom_point(aes(x=population/10^6,y=total))
p+geom_point(aes(population/10^6,total))+geom_text(aes(population/10^6,total,label=abb))#加标签
p+geom_point(aes(population/10^6,total),size=3)+geom_text(aes(population/10^6,total,label=abb),nudge_x=1.5)
p+geom_point(size=3)+geom_text(nudge_x=0.05)+scale_x_continuous(trans="log10")+scale_y_continuous(trans="log10")