如何在ggplot2中创建多行图例


您可以使用以下语法在 ggplot2 中创建多行图例:

 ggplot(df, aes(x=x_var, y=y_var, color=group_var)) +
geom_point() +
  guides(color=guide_legend(nrow= 2 , byrow= TRUE )) 

nrow参数的值指定图例中使用的行数。

以下示例展示了如何在实践中使用此语法。

示例:在 ggplot2 中创建多行图例

假设我们在 R 中有以下数据框,其中包含有关各种篮球运动员的信息:

 #create data frame
df <- data. frame (team=c('Mavs', 'Heat', 'Nets', 'Lakers', 'Suns', 'Cavs'),
                 points=c(24, 20, 34, 39, 28, 29),
                 assists=c(5, 7, 6, 9, 12, 13))

#view data frame
df

    team points assists
1 Mavs 24 5
2 Heat 20 7
3 Nets 34 6
4 Lakers 39 9
5 Suns 28 12
6 Cavs 29 13

如果我们在 ggplot2 中创建散点图而不指定图例中使用的行数,则 ggplot2 默认情况下会在每行上放置一个标签:

 library (ggplot2)

#create default scatterplot
ggplot(df, aes(x=assists, y=points, color=team)) +
  geom_point(size= 3 )

为了创建多行图例,我们需要使用带有nrow参数的guides()函数:

 library (ggplot2)

#create scatterplot with two rows in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
  geom_point(size= 3 ) +
  guides(color=guide_legend(nrow= 2 , byrow= TRUE )) 

请注意,图例现在有两行。

如果我们还想更改图例的位置,可以使用theme()函数和legend.position参数:

 library (ggplot2)

#create scatterplot with two rows in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
  geom_point(size= 3 ) +
  theme(legend. position = ' bottom ') +
  guides(color=guide_legend(nrow= 2 , byrow= TRUE )) 

图例现在位于图的底部并有两行。

其他资源

以下教程解释了如何在ggplot2中执行其他常见操作:

如何更改ggplot2中的图例标题
如何更改ggplot2中的图例大小
如何更改ggplot2中的图例位置

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注