R语言ggplot2绘图原理(1)快速入门
背景
"一张统计图形就是从数据到几何对象(geometric object, 缩写为geom, 包括点、线、条形等)的图形属性(aesthetic attributes, 缩写为aes, 包括颜色、形状、大小等)的一个映射。此外, 图形中还可能包含数据的统计变换(statistical transformation, 缩写为stats), 最后绘制在某个特定的坐标系(coordinate system, 缩写为coord)中, 而分面(facet, 指将绘图窗口划分为若干个子窗口)则可以用来生成数据中不同子集的图形。"
----- Hadley Wickham
ggplot2是由Hadley Wickham创建的一个十分强大的可视化R包。按照ggplot2的绘图理念,Plot(图)= data(数据集)+ Aesthetics(美学映射)+ Geometry(几何对象)。
绘图要素
数据(data):作图的数据
映射(mapping):几何或者统计对象的美学,比如位置,颜色,大小,形状等
标度(scale):在对图形属性进行映射之后,使用标尺可以控制这些属性的显示方式,比如坐标刻度,颜色属性等
统计变换(statistics):数据的统计,比如百分位,拟合曲线
坐标系统(coordinante):数据的转换
图层(layer):是几何元素和统计变换的集合
分面(facet):数据图表的排列
几何对象(geometric):表示数据的几何形状
主题(theme):图形的整体视觉默认值,如背景、网格、轴、默认字体、大小和颜色
快速入门
准备数据,从diamonds中随机抽取500条数据
library(tidyverse)
data(diamonds)
set.seed(1000)
small_diamonds <- sample_n(diamonds, size = 500)
创建一个画布,指定数据和坐标轴
ggplot(data = small_diamonds, aes(x=carat, y=price)) +
theme_classic()
添加geom_point()几何对象
ggplot(data = small_diamonds, aes(x=carat, y=price)) +
geom_point() +
theme_classic()
将数据集里的cut映射到点的颜色
ggplot(data = small_diamonds, aes(x=carat, y=price)) +
geom_point(aes(color = cut)) +
theme_classic()
标度控制着映射的方式,ggplot2内置了很多标度,也可以使用ggsci中的颜色标
library(ggsci)
ggplot(data = small_diamonds, aes(x=carat, y=price)) +
geom_point(aes(color = cut)) +
scale_color_npg() +
theme_classic()