如何在R的ggplot2中使用盒子包裹图例?


为了在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))

输出

如果将以上所有代码片段作为一个程序执行,它将生成以下输出:

更新于:2021年11月9日

2K+ 浏览量

启动您的职业生涯

完成课程获得认证

开始
广告