ggplot 中多重填充的图例

ruby

1个回答

写回答

Camillecy

2025-07-09 16:24

+ 关注

ABS
ABS

使用 ggplot 绘图包时,我们经常需要为图例添加多个填充项,以便更好地展示数据。本文将介绍如何在 ggplot 中创建多重填充的图例,并附带一个实际案例代码。

首先,我们需要加载 ggplot2 包,并准备一个数据集。我们这里使用的是一个关于不同城市气温和降水量的数据集。数据集包含了城市名称、月份、气温和降水量等信息。

R

library(ggplot2)

# 创建一个数据集

data <- data.frame(</p> city = rep(c("A", "B", "C"), each = 12),

month = rep(1:12, 3),

temperature = runif(36, 10, 30),

precipitation = runif(36, 0, 100)

)

接下来,我们将使用 ggplot 函数创建一个散点图,并在图例中添加两个填充项,分别表示气温和降水量。为了方便区分不同的填充项,我们将它们分别用不同的颜色表示。

R

# 创建散点图

ggplot(data, aes(x = month, y = temperature, color = city, fill = temperature)) +

geom_point(shape = 21, size = 4) +

geom_line(aes(group = city), size = 1) +

geom_area(aes(group = city), alpha = 0.3) +

scale_fill_gradient(low = "blue", high = "red") +

lABS(title = "城市气温和降水量", x = "月份", y = "气温") +

theme_minimal()

在上面的代码中,我们使用 geom_point 函数创建了散点图,并使用 geom_line 和 geom_area 函数分别添加了折线图和填充区域。其中 color 参数用于设置散点的边框颜色,fill 参数用于设置填充区域的颜色。通过 scale_fill_gradient 函数,我们将填充颜色设置为从蓝色到红色的渐变色。lABS 函数用于设置图表的标题和坐标轴标签,theme_minimal 函数设置了图表的主题风格。

下面,我们将继续讲解如何在图例中添加多个填充项。

添加多个填充项

在上面的例子中,我们只使用了一个填充项来表示气温。现在,我们将再添加一个填充项,来表示降水量。我们可以使用 scale_fill_manual 函数来手动设置填充的颜色。

R

# 添加多个填充项

ggplot(data, aes(x = month, y = temperature, color = city, fill = temperature)) +

geom_point(shape = 21, size = 4) +

geom_line(aes(group = city), size = 1) +

geom_area(aes(group = city), alpha = 0.3) +

scale_fill_manual(values = c("blue", "red"), labels = c("气温", "降水量")) +

scale_color_manual(values = c("black", "black", "black")) +

lABS(title = "城市气温和降水量", x = "月份", y = "气温") +

theme_minimal()

在上面的代码中,我们使用 scale_fill_manual 函数手动设置了填充的颜色和标签。values 参数用于设置填充颜色,labels 参数用于设置填充标签。我们还使用 scale_color_manual 函数手动设置了散点边框的颜色。

通过上面的代码,我们成功地为图例添加了多个填充项,分别表示气温和降水量。

本文介绍了如何在 ggplot 中创建多重填充的图例。我们首先使用了一个案例代码来展示如何为图例添加单个填充项。然后,我们进一步展示了如何添加多个填充项,并手动设置它们的颜色和标签。

使用 ggplot 绘图包,我们可以方便地创建具有多重填充的图例,从而更好地展示数据。这为我们在可视化数据时提供了更多的选择和灵活性。希望本文能对你在使用 ggplot 进行数据可视化时有所帮助!

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号