ggplot2是基于R语言下图形语法的一个绘图包。在这个绘图包下,我们可以通过用符号对data, transformation, scale, coordinates, elements, guides, display等一系列独立的步骤的搭配叠加,来实现高质量的统计绘图。
另外,ggplot2也有将绘制的图形与数据分离,数据相关的绘图与数据无关的绘图分离的特点,它是按图层来做图的,我们通常用’+'来实现图层的叠加。这个网站可以让我们更加系统的了解(https://ggplot2.tidyverse.org),这里我们只是做一个简要的概括。
这个绘图包的绘图命令主要有四种:
stats # 统计变换
geom #几何对象
aes # 图形映射
annotate #文本注释
接下来我们主要讲一下geom和aes命令的用法
1.geom命令
geom命令主要是渲染图层和控制图像类型,geom_point()将会生成散点图, 而geom_line会生成折线图 ,比如我们举一个小例子:
首先我们导入ggplot2绘图包,如果提示没有包,就用install.packages(‘包名’)安装
install.packages('ggplot2')
library(ggplot2)
下面我们通过对一辆车的行驶数据分析作出它的路程图
ii<-1
dt1<-d[[ii]]
ggplot(dt1,aes(x=lng,y=lat))+geom_point(alpha=0.1) #alpha表示点的透视程度
i<-6
ggplot(dt1[(ids_time_diff [i]-100):(ids_time_diff [i]+100),],aes(x=lng,y=lat,color=location_time))+geom_path()
2.aes命令
aes参数对变量进行图形映射,以及映射方式
aes可以控制横纵坐标、点的大小、颜色,填充色等
例:
ggplot(dt1[(ids_time_diff [i]-100):(ids_time_diff [i]+100),],aes(x=lng,y=lat,color=location_time))+geom_point(alpha=0.5)
R的ggplot2是一个很好的作图包,具有优雅的语法结构、多参数可变的调整和丰富的作图模式,然而ggplot学习起来较为复杂,而且在画图之前需要做一些繁琐的数据整形和处理工作。matplotlib绘图学习起来也有些繁琐,但是图形相比ggplot有一些直观和简单,所以,这两者各有千秋。