Logo
Section 1 / 18

R 中的图表函数简介

学习图表函数的功能及其配置方法。

导入

R 中的图表函数简介

学习图表函数的功能及其配置方法。

数据可视化具有诸多优势,例如能够识别表格数据中不易察觉的模式和趋势。它还能使复杂的数据更易于理解,并便于向他人传达信息,从而促进更快、更明智的决策。为了获得这些好处,学习使用 R 这类工具进行数据可视化非常重要。借助 ggplot2 等工具,R 提供了创建高质量数据可视化图表的广泛选项。通过学习在 R 中进行数据可视化,我们可以提升作为数据分析师的能力,并增强在就业市场中的竞争力。

内置函数

R 中用于可视化的默认函数是 plot()。这是一个功能多样的函数,可用于创建多种类型的图表。

利用 R 的内置函数,我们可以创建:

  • 使用 plot() 的折线图和散点图
  • 使用 pie() 的饼图
  • 使用 barplot() 的条形图
  • 使用 hist() 的直方图
  • 使用 boxplot() 的箱线图

注意: 在本课中,我们将使用一个简单图表来展示非特定图表类型的配置选项。

基础函数参数

在逐一了解各类图表之前,先掌握这些函数常用的参数很有帮助。通过使用这些参数,我们可以根据需求自定义图表。

注意: 某些图表具有独特的自定义选项,此处未提及。

  • type:指定要创建的图表类型:

    • 默认值为 p,生成散点图。
    • l 生成折线图。
    • b 生成点与线的组合图。
    • h 生成直方图。
    • n 生成一个空白图表,后续可添加图层。
  • lwd:自定义线条、柱状图和直方图的粗细。该值为整数,数值越大,线条越粗。

  • cex:自定义几何对象(如点)的大小;默认值为 1,数值越大图形越大。

  • col:自定义几何对象的颜色。一些颜色选项包括 red、cyan、yellow、blue、green 和 black。此外,也可以使用十六进制颜色代码,如 #36637C。

注意: 十六进制代码是一种使用十六进制数制(0–9 和 A–F)表示数字设备中颜色和其他数据的方法。每个 RGB(红、绿、蓝)颜色分量用两位数字表示。

  • main:为图表添加标题。可以指定一个字符字符串作为标题,标题将显示在顶部。

  • xlab 和 ylab:分别为 x 轴和 y 轴命名。可以使用字符串值指定名称。

  • xlim 和 ylim:确定 x 轴和 y 轴上显示的数值范围。通过设置一个包含两个值的向量,分别定义每根轴的最小值和最大值。这有助于设定图表中显示的数值区间。

以下是使用上述所有参数的示例:

1# 本练习中使用 `iris` 数据集 2iris <- head(iris, 10) 3iris 4plot(iris$Sepal.Length, iris$Petal.Length, # 指定用于 x 轴和 y 轴的列 5 col = 'darkblue', # 设置点的颜色 6 lwd = 3, # 设置几何对象的线条粗细 7 main = "一个散点图示例", # 为图表添加标题 8 xlab = '花萼长度', # 为 x 轴添加标签 9 ylab = '花瓣长度', # 为 y 轴添加标签 10 xlim = c(min(iris$Sepal.Length)-0.5, max(iris$Sepal.Length) + 0.5 ), # 设置 x 轴范围 11 ylim = c(min(iris$Petal.Length)-0.5, max(iris$Petal.Length) + 0.5 )) # 设置 y 轴范围
  • 第 4 行:我们使用 Sepal.Length 和 Petal.Length 列作为 x 轴和 y 轴的数据。
  • 第 5 行:我们将颜色设为 darkblue。
  • 第 6 行:我们设置几何对象的线条粗细。
  • 第 7 行:我们为图表添加描述性标题。
  • 第 8–9 行:我们为 x 轴和 y 轴添加描述性标签。
  • 第 10–11 行:我们定义 x 轴和 y 轴的范围。通过获取最小值和最大值,并分别减去和加上 0.5,以留出足够的布局空间。

text() 函数

我们可以使用 text() 函数在指定坐标位置添加文本对象。x 和 y 参数指定文本在图表中的位置。labels 参数用于定义文本内容。可以使用字符串值嵌入文本,也可以传入变量,这样不同 x-y 坐标处会显示不同的值。text() 函数通常在主绘图函数之后调用。

1# 语法结构 2# 静态文本 3plot(...) 4text(<x坐标>, <y坐标>, <'文本'>) 5 6# 动态文本 7plot(...) 8text(<x变量>, <y变量>, <值变量>)

我们可以使用以下参数来修改添加的文本:

  • col:更改文本颜色。
  • pos:调整文本相对于点的位置。取值为 1 到 4,分别表示文本位于点的下方、左侧、上方和右侧。
  • cex:调整文本字体大小,默认值为 1。

让我们将这些功能应用到图表中。

1# 本练习中使用 `iris` 数据集 2iris <- head(iris, 10) 3iris 4plot(iris$Sepal.Length, iris$Petal.Length, # 指定用于 x 轴和 y 轴的列 5 col = 'darkblue', lwd = 3, # 设置点的颜色 6 main = "一个散点图示例", # 为图表添加标题 7 xlab = '花萼长度', # 为 x 轴添加标签 8 ylab = '花瓣长度', # 为 y 轴添加标签 9 xlim = c(min(iris$Sepal.Length)-0.5, max(iris$Sepal.Length) + 0.5 ), # 设置 x 轴范围 10 ylim = c(min(iris$Petal.Length)-0.5, max(iris$Petal.Length) + 0.5 )) # 设置 y 轴范围 11# 添加文本图层 12text(x = iris$Sepal.Length, y = iris$Petal.Length, # 从这些列中选择 x 和 y 坐标 13 labels = iris$Petal.Length, # 使用指定点的值作为标签 14 pos = 2, # 定义文本的位置 15 cex = 0.8, # 调整字体大小 16 col = 'red') # 指定颜色 17text(5, 2, # 定义一个静态位置 18 '数据至上!', # 添加一个文本对象 19 cex = 1.2, # 改变字体大小 20 col = 'blue') # 指定颜色
  • 第 12 行:我们定义要标注点的坐标。将 Sepal.Length 列赋给 x,将 Petal.Length 列赋给 y。这种方法使函数能够准确定位点。
  • 第 13 行:在定义点的位置后,我们使用 Petal.Length 的值作为点的标签。
  • 第 14 行:我们指定标签相对于点的位置。
  • 第 15 行:我们将 cex 设置为 0.8,表示字体大小为默认值的 80%。
  • 第 16 行:我们定义了点的颜色。
  • 第 17 行:我们添加另一个文本图层。这次是静态位置,因为 x 轴硬编码为 5,y 轴为 2。这意味着文本出现在 x 轴第 5 个单位、y 轴第 2 个单位的位置。坐标系以 (0,0) 为原点,第一个数增大时水平方向远离原点,减小时靠近原点;第二个数决定垂直位置。
  • 第 18 行:我们输入希望在图表中显示的文本。
  • 第 19 行:我们将字体大小增加到默认大小的 120%。
  • 第 20 行:我们定义了文本的颜色。

legend() 函数

在数据可视化中,图例是一个关键组成部分,用于说明图表中使用的符号、颜色或其他图形元素的含义。设计良好且信息丰富的图例框能显著提升数据可视化的清晰度和表现力。它是向观众清晰传达信息的有力工具。

在 R 中,我们使用 legend() 函数为图表添加图例。该函数允许我们指定图例的位置和标签,还可以配置视觉属性,如字体大小、字体类型、背景色、边框色等。此函数通常在主绘图函数之后调用。

以下是该函数可接受的一些参数:

  • x 和 y:指定图例框起始点的 x 和 y 坐标。若不指定坐标,可使用 top、left、bottom、right 等文字描述,也可组合使用,如 topleft、bottomright。

  • fill:按顺序指定图例的颜色。

  • bty:当设置为 'n' 时,移除图例框的边框。

  • cex:调整图例的字体大小,默认值为 1。

  • bg:指定图例区域的背景颜色,可使用字符串值如 blue 或 #36637C。

  • title:为图例区域添加标题,接受字符串值。

1plot(...) 2legend(<'位置'>, legend = c(<'名称1'>, <'名称2'>, ...), fill = c(<'颜色1'>, <'颜色2'>, ...))

以下是 legend() 函数的完整实现,包含上述参数:

1# 本练习中使用随机数据集 2# 创建数据集 3set.seed(12) # 稳定随机生成的数值 4diameter <- sample(1000:1500, 30, replace = FALSE) / 200 5diameter <- round(diameter, 1) 6grams <- sample(1000:1500, 30, replace = FALSE) / 5 7name <- factor(sample(1:3, 30, replace = TRUE), labels = c('苹果', '番茄', '桃子')) 8fruits <- data.frame(name = name, diameter = diameter, grams = grams) 9 10print('------- 数据集预览 ----------------') 11head(fruits) 12colors <- c("green", "red", "orange") # 定义颜色向量 13# 生成图表 14plot(diameter, grams, # 指定 x 和 y 坐标的来源数据 15 pch = 15, # 指定点的形状 16 col = colors[name]) # 为每个类别设置不同颜色 17legend('topleft', # 指定图例位置 18 legend = c('苹果', '番茄', '桃子'), # 按顺序添加图例名称 19 fill = c('green', 'red', 'orange'), # 选择对应颜色 20 bty = 'n', # 移除图例框的边框 21 cex = 0.8, # 调整字体大小 22 title = '产品', # 为图例区域添加标题 23)
  • 第 16 行:我们将 colors 向量与我们创建的分类向量关联起来。每个类别被赋予一种颜色,因此得到一个与数据中类别顺序一致的颜色向量。苹果、番茄和桃子分别被标记为绿色、红色和橙色。
  • 第 17 行:我们使用 topleft 参数指定图例的位置。
  • 第 18 行:我们按顺序为图例命名。
  • 第 19 行:我们为每个图例指定颜色。
  • 第 20 行:我们移除了图例框的边框。
  • 第 21 行:我们减小了图例文字的大小。
  • 第 22 行:我们为图例区域添加了标题。

注意: 请尝试更改函数中使用的参数组合及其值,以观察可视化效果的变化。

基础 R 为初学者提供了优秀的工具,帮助他们理解数据可视化的概念,并几乎无需费力即可生成实用且美观的图表。基础 R 函数的语法简洁实用,使得即使是非专业用户也能轻松实现数据可视化。

数据转换

ggplot2 库简介