此博客作为自己的学习笔记,同时与大家交流分享!
语法这一部分有点难理解,只是看文字描述的概念不易懂,最好是能在画图过程中去理解体会,只有了解了语法,才能掌握ggplot2的精髓,画出的图才能高大上!
下面主要学习ggplot2的理论基础:图形图层语法
建立一个散点图
以ggplot2包中的mpg数据集(记录了美国1999年和2008年部分汽车的制造商、型号、类别、引擎大小、传动系和耗油量等信息)为例
library(ggplot2)
mpg
# A tibble: 234 x 11
manufacturer model displ year cyl trans drv cty hwy fl class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
2 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
3 audi a4 2 2008 4 manual(m6) f 20 31 p compact
4 audi a4 2 2008 4 auto(av) f 21 30 p compact
5 audi a4 2.8 1999 6 auto(l5) f 16 26 p compact
6 audi a4 2.8 1999 6 manual(m5) f 18 26 p compact
7 audi a4 3.1 2008 6 auto(av) f 18 27 p compact
8 audi a4 quattro 1.8 1999 4 manual(m5) 4 18 26 p compact
9 audi a4 quattro 1.8 1999 4 auto(l5) 4 16 25 p compact
10 audi a4 quattro 2 2008 4 manual(m6) 4 20 28 p compact
# ... with 224 more rows
分别利用qplot()
和ggplot()
画一个以气缸数(cyl
)分类的发动机排量(displ
)和高速公路每加仑行驶的英里数(hwy
)的散点图
qplot(displ, hwy, data = mpg, colour = factor(cyl)) #cyl此时是一个分组变量
ggplot(mpg, aes(displ, hwy, colour = factor(cyl))) +
geom_point() #factor()见ggplot2学习笔记3
对于散点图,是每个观测值表示为一个点,根据两个变量的值进行定位。除了水平和垂直位置,每个点还具有大小,颜色和形状。这些属性被称为美学(aesthetics),是能在图形上感知的属性。每个美学可以映射到一个变量,或设置为一个常量值。在上图中,displ
映射到横轴上,hwy
映射到纵轴上,cyl
设置为彩色分类。大小和形状没有映射到变量,但保持其(恒定)默认值。
映射设定好之后,我们可以通过改变函数,画出除了散点图之外的折线图geom_line()
、柱形图geom_bar()
等
#折线图
ggplot(mpg, aes(displ, hwy, colour = factor(cyl))) +
geom_line() +
theme(legend.position = "none")
#柱状图
ggplot(mpg, aes(displ, hwy, colour = factor(cyl))) +
geom_bar(stat = "identity", position = "identity", fill = NA) +
theme(legend.position = "none")
根据语法,有些图很清楚明辨是折线图,柱状图还是散点图,而有一些图并没有确定的名称,如:
ggplot(mpg, aes(displ, hwy, colour = factor(cyl))) +
geom_point() +
geom_smooth(method = "lm") #由于数据根据气缸数进行了分组,拟合直线也进行了分组拟合
简单地说,标度就是一种映射关系,如坐标轴的位置标度和图例中的颜色、形状等等。
坐标系(简称coord)是指数据映射所在的图表平面,位置通常由两个坐标(x, y)决定。
坐标系的不同类型如下图:
从左到右依次是笛卡尔坐标系、半对数坐标系、极坐标系
还有很多其他坐标系
见后续…
往期笔记
- ggplot2学习笔记1:从qplot()开始
参考资料
- 书籍:《ggplot2:数据分析与图形艺术》
- Hadley Wickham(2016). ggplot2. Springer International Publishing. doi:10.1007/978-3-319-24277-4