如何在 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))
输出
如果将上述所有代码片段作为单个程序执行,则会生成以下输出 −