23

I have plotted several lines and I am wondering how to change the symbol in the legend to go from the thin line to a full block.

I am trying to go from

this to this

(while using geom_line and not geom_bar)

1
  • Please show us the code and the sample data.
    – Metrics
    Commented Oct 18, 2013 at 18:53

2 Answers 2

37

Starting in ggplot2_3.2.0, you can choose which glyph you want displayed in the legend keys using the key_glyph argument in the geom_*().

For example, you want to use rectangles instead of lines as your glyph. In that case you can do

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

See ?draw_key for a list of the current glyphs available.

17

You can use function guides() and then with argument override.aes= set line size= (width) to some large value. To remove the grey area around the legend keys set fill=NA for legend.key= inside theme().

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))

enter image description here

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.