【问题标题】:Reducing legend size in ggplot beyond default size将ggplot中的图例大小减小到默认大小之外
【发布时间】:2014-01-02 14:19:22
【问题描述】:

我的目标是使用ggplot 制作多个图,并使用gridExtra 包中的grid.arrange 将它们组合成一个图。

当我尝试将图与grid.arrange 并排放置时,我遇到的问题是我的ggplot 中的图例(虽然大小适合单个图)太大。生成的组合图减小了 x 轴,但保持了图例的原始大小。所以结果是一个非常瘦的情节,旁边是一个不必要的大图例。所以我想减少每个情节中图例的大小,足以让我可以并排放置我的情节。或者可能将它们缩小到足以将它们带入实际情节而不至于霸道。

V1<-rnorm(10)
V2<-rnorm(10)
V3<-rnorm(10)
DF<-data.frame(V1,V2,V3)


ggplot(DF,aes(x=V1,y=V2,size=V3))+
geom_point(fill='red',shape=21)+
theme_bw()+
scale_size(range=c(5,20))

此绘图命令在绘图右侧生成标准图例大小。

我尝试过使用不同的主题元素:

+theme(legend.key.size = unit(0.5, "cm")

+theme(legend.key.width=unit(0.3,"cm"),legend.key.height=unit(0.3,"cm"),legend.position = c(0.7, 0.8))

虽然我可以使用这些主题命令使图例变大,但我不能使图例小于默认图例。那么有没有办法将图例缩小到默认大小之外呢?

我还可以更改我的 pdf 设备的默认大小以使其更宽并容纳大图例,但我现在想使用标准的 pdf 大小。

【问题讨论】:

    标签: r ggplot2 legend


    【解决方案1】:

    图例的重点是将绘图上的美学(例如颜色、填充、形状或大小)映射到图例中标识的级别。参数legend.key.size.width.height 调整围绕图例元素的框的大小。使用颜色、填充和形状,您可以使图例项尽可能小,但通过大小,元素的大小会告诉您哪个气泡对应于哪个图例项,因此图例项必须具有对应的大小到情节上。

    以下三种可能对您有所帮助:

    选项 1:将图例放在情节中。

    ggplot(DF,aes(x=V1,y=V2,size=V3))+
      geom_point(fill='red',shape=21)+
      theme_bw()+
      scale_size(range=c(5,20))+
      theme(legend.justification=c(1,0), legend.position=c(1,0))
    

    选项 2:如果可以,请使用 facet_wrap(...)。这样,您只能获得一组图的一个图例。

    选项 3:使用颜色和尺寸,然后完全隐藏尺寸图例。

    ggplot(DF,aes(x=V1,y=V2,size=V3, color=V3))+
      geom_point(shape=19)+
      theme_bw()+
      scale_size(range=c(5,20), guide="none")+
      scale_color_gradient(high="#ff0000", low="#ffffcc")   
    

    【讨论】:

      猜你喜欢
      • 2018-04-29
      • 1970-01-01
      • 2013-06-01
      • 1970-01-01
      • 2019-02-14
      • 2016-10-18
      • 2010-10-03
      • 1970-01-01
      相关资源
      最近更新 更多