ggplot2:更改图例符号

22

我已经绘制了几条线,现在想知道如何将图例中的标志从细线改为实心块。

我想实现从

thisthis

(在使用geom_line而不是geom_bar时)


请展示给我们代码和样本数据。 - Metrics
2个回答

35

ggplot2_3.2.0开始,您可以使用geom_*()中的key_glyph参数选择要在图例键中显示的字形。

例如,您想使用矩形而不是线条作为图标。在这种情况下,您可以执行以下操作:

df = data.frame(x = rep(1:5, each=3),
                y = 1:15,
                group = rep(c("A", "B", "C"), each=5))

ggplot(df, aes(x, y, color=group) )+
    geom_line(key_glyph = "rect")

enter image description here

请参见?draw_key以获取当前可用字形列表。


17

您可以使用函数guides(),并使用参数override.aes=将线条size=(宽度)设置为某个较大的值。要删除图例键周围的灰色区域,请在theme()内设置legend.key=fill=NA

df<-data.frame(x=rep(1:5,each=3),y=1:15,group=rep(c("A","B","C"),each=5))
ggplot(df,aes(x,y,color=group,fill=group))+geom_line()+
  guides(colour = guide_legend(override.aes = list(size = 10)))+
  theme(legend.key=element_rect(fill=NA))

在此输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接