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

定制和方面

除了定义几何形状和美学之外,ggplot2 还允许您通过添加标题、修改主题和分面(将绘图拆分为子面板)来完全自定义绘图的视觉外观。


标题和标签:labs()

要添加主标题、副标题以及自定义轴标签或图例标题,我们添加 labs() 层:

R
ggplot(df, aes(x = age, y = income)) +
  geom_point() +
  labs(
    title = "Income by Age",
    subtitle = "2026 census data",
    x = "Age (years)",
    y = "Annual Income (EUR)",
    color = "Gender"
  )

视觉主题:theme_*()

ggplot2 包括几个预先打包的主题,可以更改背景、网格线和版式。一些最常见的是:

  • theme_gray()(浅灰色背景的默认主题)。
  • theme_minimal()(带有细网格线的干净白色背景)。
  • theme_classic()(简单经典样式,没有背景网格线)。
R
ggplot(df, aes(x = age, y = income)) +
  geom_point() +
  theme_minimal()  # Applies a clean, modern style

将图拆分为子面板:facet_wrap()

分面允许您根据分类变量的值将单个图并排拆分为多个子图(面板)。

主要函数是 facet_wrap() 并使用 R 公式符号 (~ variable_name):

R
# Creates a separate subplot for each department
ggplot(df, aes(x = age, y = income)) +
  geom_point() +
  facet_wrap(~ department)

自己尝试一下

练习 1:添加标题和轴

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

给定散点图,添加一个 labs() 图层,将标题 (title) 设置为“Title”,将 x 轴标签设置为“Age”,将 y 轴标签设置为“Income”。

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

使用 labs(title = 'Title', x = 'Age', y = 'Income') 将其与 '+' 连接起来。

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

练习 2:应用干净的主题

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

将 theme_minimal() 图形主题应用到下面的散点图上,以提高其视觉美感。

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

使用“+”号并添加 theme_minimal() 函数。

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

练习 3:使用facet_wrap 分割图

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

使用facet_wrap()函数根据部门列将散点图分割成不同的面板。

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

使用facet_wrap(~department)来分割图。

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

练习 4:翻转坐标轴

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

要使包含多个类别的柱形图可读,您可以翻转 x 轴和 y 轴。将 coord_flip() 图层添加到条形图中。

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

使用 coord_flip()legandolo alla pipeline ggplot con '+'。

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

练习 5:完成可发表的情节

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

在 df 上创建完整的绘图:在 geom_point() 内将年龄映射到 x,将收入映射到 y,将颜色映射到性别。使用facet_wrap()按部门分割绘图,添加标题为“按年龄薪资”的labs(),最后应用theme_minimal()。

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

使用“+”组合所有图层:ggplot(...) + geom_point() + facet_wrap(~ Department) + labs(title = 'Salary by Age') + theme_minimal()

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