繁体   English   中英

在ggplot图例项目之间添加更多空间

[英]Add more space between ggplot legend items

我有这样的数据

plot.d <- data.frame(vars = c(11:20),
                       time = c(1:5,1:5),
                       method = c(rep("aaaa", 5), rep("bbbb", 5)))

现在,我想创建一个点图,图例应为1列,但要增加空间。

根据手册, legend.spacing.y应该可以解决问题。 但是,使用此代码:

ggplot(plot.d, aes(y = vars, x = time)) +
  geom_point(aes(shape= method, color = method, size = method)) +
  scale_shape_manual(values=c(18,15), guide=guide_legend(nrow=2)) +
  scale_color_manual(values=c('grey60','grey50')) +
  scale_size_manual(values=c(3, 2)) +
  theme(legend.title = element_blank(),
    legend.spacing.x = unit(0.15, 'cm'),
    legend.spacing.y = unit(1.4, 'cm'),
    legend.text=element_text(size=12),
    legend.box.background = element_rect(colour = "black")
  )

我只得到这个情节:

在此处输入图片说明

图例周围的框增加了,但两个图例项之间的行间距保持不变。

怎么了

如果我的目标很好,则需要修改legend.key.* 随机选择的示例:

   ggplot(plot.d, aes(y = vars, x = time)) +
  geom_point(aes(shape= method, color = method, size = method)) +
  scale_shape_manual(values=c(18,15), guide=guide_legend(nrow=2)) +
  scale_color_manual(values=c('grey60','grey50')) +
  scale_size_manual(values=c(3, 2)) +
  theme(legend.title = element_blank(),
        legend.spacing.x = unit(0.15, 'cm'),
        legend.spacing.y = unit(1.2, 'cm'),
        legend.text=element_text(size=12),
        legend.key.width = unit(1.5,"cm"),
        legend.key.height = unit(1.2,"cm"),
        legend.box.background = element_rect(colour = "black")
  )

结果: 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM