ggplot2
Elegant Graphics for Data Analysis,用于数据分析的精美图形
ggplot2是一个用于数据统计和绘图的R包 与其它绘图包不同,ggplot2有自己的基础语法
ggplot2的逻辑就是基于图层的概念,把一张统计图中涵盖的元素按属性可以分成5大类:
1、几何对象
geometric object,简写成geoms,代表图中的点、线和多边形等
2、 尺度
aesthetic attributes,简写成aes,包括颜色、形状和大小等
3、数据的统计变换
statistical transformation,简写stats
总结数据,例如分类统计绘制直方图,或总结得出一个二维的线性模型
4、坐标系
coordinate system,简写coord
通过坐标轴和网格线展示
一般采用笛卡尔坐标系,同时支持其它坐标系(极坐标、地图投射等)
5、 分面
facet,指定绘图窗口划分为若干个子窗口熟悉PS的朋友可能知道,在PS里绘图我们通过不断新建图层达到添加新元素的目的,ggplot2的图层概念与之类似
安装ggplot2
install.packages("ggplot2")
使用qplot绘制简单图形
ggplot2内置的数据集
绘图所用数据集为ggplot2内置的diamonds,该数据是53,940个钻石的价格和品质信息
钻石的4C标准:carat(克拉)、cut(切工)、color(色泽)和clarity(透明度)
head(diamonds)
carat | cut | color | clarity | depth | table | price | x | y | z |
---|---|---|---|---|---|---|---|---|---|
0.23 | Ideal | E | SI2 | 61.5 | 55 | 326 | 3.95 | 3.98 | 2.43 |
– | – | – | – | – | – | – | – | – | – |
0.21 | Premium | E | SI1 | 59.8 | 61 | 326 | 3.89 | 3.84 | 2.31 |
– | – | – | – | – | – | – | – | – | – |
0.23 | Good | E | VS1 | 56.9 | 65 | 327 | 4.05 | 4.07 | 2.31 |
– | – | – | – | – | – | – | – | – | – |
0.29 | Premium | I | VS2 | 62.4 | 58 | 334 | 4.2 | 4.23 | 2.63 |
– | – | – | – | – | – | – | – | – | – |
0.31 | Good | J | SI2 | 63.3 | 58 | 335 | 4.34 | 4.35 | 2.75 |
– | – | – | – | – | – | – | – | – | – |
0.24 | Very Good | J | VVS2 | 62.8 | 57 | 336 | 3.94 | 3.96 | 2.48 |
图1 x、y、z、table和depth的测量方式
另外我们会从diamonds数据中随机产生一个包含100个钻石品质信息的数据子集dsmall
set.seed(2022) #设置随机数种子,根据种子编号产生可重复的伪随机数