[R] How to create separate legend for each plot in the function of facet_wrap in ggplot2?

Marna Wagley marna.wagley at gmail.com
Fri Nov 10 10:21:46 CET 2017


Hi R users,
I need to create more than 20 figures (one for each group) in one page. I
have a  common  legend for 20 figures using the facet_wrap. However the
range of the values among the groups are very wide. For example one group
has the value of 0 to 3, but the values of some of the groups has ranged
from 0 to 20 so that when I used a single common legend for all 20 figures,
I could not display the contrast of the values in some of the figures.
Therefore I wanted to create the figures with *a separate legend*.In this
way, I can display the gradient of the values in each figure.  Any
suggestions on how I can create it.

The example is given below, *I wanted to create a separate legend with
keeping legend inside of each of the figure*.

library(ggplot2)

dat<-structure(list(X = c(289.6, 289.7, 289.8, 289.9, 290, 290.1,

927.8, 927.9, 928, 928.1, 928.2, 928.3), Y = c(789.1, 789.2,

789.3, 789.4, 789.5, 789.6, 171.1, 171.2, 171.3, 171.4, 171.5,

171.6), value = c(0.05, 0.06, 0.07, 0.09, 0.1, 0.11, 0.06, 0.05,

0.05, 0.06, 0.1, 1.5), group = structure(c(1L, 1L, 1L, 1L, 1L,

1L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("A", "B"), class = "factor")),
.Names = c("X",

"Y", "value", "group"), class = "data.frame", row.names = c(NA,

-12L))


AB<-ggplot(data = dat, aes(x = X, y = Y, color =  value)) +  geom_point(size
=2) +

coord_equal() +  theme_bw()+ scale_color_gradientn(colours = terrain.colors(
7))

AB+facet_wrap(~group,  scales="free")+theme(strip.text = element_text(size
= 8))




Thanks


MW

	[[alternative HTML version deleted]]



More information about the R-help mailing list