如何在 R 中使用 ggplot2 覆盖方框中的图例?

r programmingserver side programmingprogramming更新于 2025/4/8 7:07:17

要在 R 中使用 ggplot2 覆盖方框中的图例,我们可以使用 theme 函数以及 legend.box.background 和 legend.box.margin 参数。legend.box.background 将在 element_rect 的帮助下具有一个矩形元素,并且边距值将在 legend.box.margin 中设置。

查看下面给出的示例以了解如何完成。

示例

以下代码片段创建了一个示例数据框 −

Score<-sample(1:100,20)
Rank<-sample(1:10,20,replace=TRUE)
Gender<-sample(c("Male","Female"),20,replace=TRUE)
df<-data.frame(Score,Rank,Gender)
df

创建以下数据框

 Score Rank Gender
 1 80     9 Male
 2 82     1 Female
 3 13     5 Male
 4 91     1 Female
 5 62     6 Male
 6 52     2 Female
 7 72     7 Male
 8 15     2 Male
 9 44     2 Male 
10 78     5 Male
11 5     10 Male
12 22     1 Female
13 92     8 Female
14 94     2 Male
15 40     3 Male
16 73     8 Female
17 66     6 Male
18 70     6 Male
19 69     6 Male
20 47     7 Male

要加载 ggplot2 包并在上面创建的数据框中按性别着色的分数和排名之间的散点图,请将以下代码添加到上面的代码片段中 −

Score<-sample(1:100,20)
Rank<-sample(1:10,20,replace=TRUE)
Gender<-sample(c("Male","Female"),20,replace=TRUE)
df<-data.frame(Score,Rank,Gender)
library(ggplot2)
ggplot(df,aes(Score,Rank))+geom_point(aes(colour=factor(Gender)))

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −

要在上面创建的数据框中创建分数和排名之间的散点图,其中点按性别着色,并用方框覆盖图例,请将以下代码添加到上述代码片段中 −

Score<-sample(1:100,20)
Rank<-sample(1:10,20,replace=TRUE)
Gender<-sample(c("Male","Female"),20,replace=TRUE)
df<-data.frame(Score,Rank,Gender)
library(ggplot2)
ggplot(df,aes(Score,Rank))+geom_point(aes(colour=factor(Gender)))+theme(legend.
box.background=element_rect(),legend.box.margin=margin(5,5,5,5))

输出

如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −


相关文章