前言
ggplot是一个拥有一套完备语法且容易上手的绘图系统,在Python和R中都能引入并使用,在数据分析可视化领域拥有极为广泛的应用。本篇从R的角度介绍如何使用ggplot2包,首先给几个我觉得最值得推荐的理由:
- 采用“图层”叠加的设计方式,一方面可以增加不同的图之间的联系,另一方面也有利于学习和理解该
package,photoshop的老玩家应该比较能理解这个带来的巨大便利 - 适用范围广,拥有详尽的文档,通过
?和对应的函数即可在R中找到函数说明文档和对应的实例 - 在
R和Python中均可使用,降低两门语言之间互相过度的学习成本
基本概念
本文采用ggplot2的自带数据集diamonds。
> head(diamonds)
# A tibble: 6 x 10
carat cut color clarity depth table price x y z
<dbl> <ord> <ord> <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43
2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31
3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31
4 0.290 Premium I VS2 62.4 58 334 4.2 4.23 2.63
5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75
6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48
# 变量含义
price : price in US dollars (\$326–\$18,823)
carat : weight of the diamond (0.2–5.01)
cut : quality of the cut (Fair, Good, Very Good, Premium, Ideal)
color : diamond colour, from D (best) to J (worst)
clarity: a measurement of how clear the diamond is (I1 (worst), SI2, SI1, VS2, VS1, VVS2, VVS1, IF (best))
x : length in mm (0–10.74)
y : width in mm (0–58.9)
z : depth in mm (0–31.8)
depth : total depth percentage = z / mean(x, y) = 2 * z / (x + y) (43–79)
table : width of top of diamond relative to widest point (43–95)
基于图层和画布的概念,ggplot2引申出如下的语法框架:
图源:https://mp.weixin.qq.com/s/uskZWGAwfK9BVqLBQIXpGA

data:数据源,一般是data.frame结构,否则会被转化为该结构- 个性映射与共性映射:
ggplot()中的mapping = aes()参数属于共性映射,会被之后的geom_xxx()和stat_xxx()所继承,而geom_

本文全面介绍了ggplot2绘图系统的核心概念与实用技巧,包括图层叠加设计、广泛的适用范围、详尽的文档支持及跨语言优势。通过多个实例演示了散点图、箱线图、直方图等的绘制过程,并讲解了坐标系统、瓦片图和热力图的定制方法。
最低0.47元/天 解锁文章
626

被折叠的 条评论
为什么被折叠?



