[R] Adding a legend to a (multi-facet) plot produced by ggplot().

Rolf Turner r@turner @end|ng |rom @uck|@nd@@c@nz
Mon Dec 2 02:07:05 CET 2019


On 2/12/19 3:03 am, Rui Barradas wrote:

> Hello,
> 
> See if this is it. The standard trick is to reshape the data from wide 
> to long, see the SO post [1]. Then add a scale_shape_* layer to the plot.
> 
> 
> yyy <- cbind(xxx, y3 = y3)
> long <- reshape2::melt(yyy, id.vars = c("x", "y1", "grp"))
> 
> ggplot(long, aes(x, y = value, colour = variable, shape = variable)) +
>    geom_line(aes(y = y1)) +
>    geom_point() +
>    scale_colour_manual("Doesn't work",values=c("blue","red"),
>                        labels=c("clyde","irving")) +
>    scale_shape_manual("Doesn't work",values=c(16,3),
>                        labels=c("clyde","irving")) +
> 
>    facet_grid(cols=vars(grp))
> 
> 
> [1] 
> https://stackoverflow.com/questions/2185252/reshaping-data-frame-from-wide-to-long-format 
> 
> 
> Hope this helps,

Almost there.  However the colour of the line changes with "values" and 
lines show up in the legend.  I want the lines to be black in all 
facets, and only points to show up in the legend.

I fiddled about a bit trying to achieve this but only succeeded in 
messing things up completely.

Can you guide me a bit further, please?

cheers,

Rolf

-- 
Honorary Research Fellow
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276



More information about the R-help mailing list