跳转到主要内容
模块 5 · 第 1 课(共 2)课程中的9/10~12 min
模块课程(1/2)

语法和基本几何

R 中的数据可视化主要由 ggplot2 主导,这是一个基于“图形语法”的包。该理论将图分解为独立的语义组件,例如数据、美学映射和几何元素。


ggplot2的结构

使用 ggplot2 创建的每个绘图都从调用 ggplot() 函数开始,我们在其中提供数据框并使用 aes() (美学)函数定义列如何映射到视觉属性。

接下来,我们使用 + 运算符添加几何图层(注意:我们在 ggplot2 中使用 + 而不是 %>%)。

基本模板是:

R
ggplot(data = <DATA_FRAME>, mapping = aes(<AESTHETICS>)) +
  <GEOMETRY>()

美学映射 (aes) 和几何图形 (geom_*)

aes() 函数定义数据中的哪些变量控制绘图的视觉属性:

  • x:水平轴上的位置。
  • y:垂直轴上的位置。
  • color:点或线的颜色。
  • fill:闭合形状(例如条形)的填充颜色。
  • size:元素的大小。

几何图形 (geom_) 定义视觉表示的类型:

1.散点图(geom_point())

非常适合显示两个数值变量之间的关系。

R
ggplot(df, aes(x = age, y = income)) +
  geom_point()

2. 线图 (geom_line())

常用于时间序列或趋势线。

R
ggplot(df, aes(x = year, y = sales)) +
  geom_line()

3. 条形图(geom_bar() 和 geom_col())

默认情况下, geom_bar() 计算类别的频率,而 geom_col() 表示直接存储在 y 列中的实际值。

R
# Plots the value of the 'sales' column for each 'category'
ggplot(df, aes(x = category, y = sales)) +
  geom_col()

自己尝试一下

练习 1:创建基本散点图

锻炼#r.m5.l1.e1
尝试:0加载中...

使用 df 数据框创建散点图。将高度列映射到 x 轴,将体重列映射到 y 轴。使用geom_point()。

正在加载编辑器...
显示提示

使用 ggplot(df, aes(x = 高度, y = 重量)) + geom_point()

3 次尝试后可用的解决方案

练习 2:根据数据添加颜色

锻炼#r.m5.l1.e2
尝试:0加载中...

通过将颜色属性映射到 aes() 内的性别列来修改上一个绘图,以按性别对点进行着色。

正在加载编辑器...
显示提示

包括颜色 = 性别 all'interno di aes(),例如:aes(x = 身高,y = 体重,颜色 = 性别)。

3 次尝试后可用的解决方案

练习 3:线图

锻炼#r.m5.l1.e3
尝试:0加载中...

使用 df 创建线图。将年份列映射到 x 轴,将销售额列映射到 y 轴。添加 geom_line() 几何图层。

正在加载编辑器...
显示提示

美国 ggplot(df, aes(x = 年, y = 销售额)) + geom_line()

3 次尝试后可用的解决方案

练习 4:使用 geom_col 绘制条形图

锻炼#r.m5.l1.e4
尝试:0加载中...

创建条形图以直接显示值。将类别列映射到 x 轴,将值列映射到 y 轴。使用 geom_col() 几何图形。

正在加载编辑器...
显示提示

美国 ggplot(df, aes(x = 类别, y = 值)) + geom_col()

3 次尝试后可用的解决方案

练习 5:组合多个几何图形

锻炼#r.m5.l1.e5
尝试:0加载中...

在 ggplot2 中,您可以堆叠多个几何图层。创建一个结合了 geom_point() 和 geom_smooth() 的绘图,将 x_val 映射到 x 轴,将 y_val 映射到 y 轴。

正在加载编辑器...
显示提示

使用 geom_point() 和 geom_smooth() 分隔标记“+”。

3 次尝试后可用的解决方案