简体   繁体   中英

ggplot2: Adding another legend to a plot (two times)

I have the following data set that is used for plotting a bubble plot frequencies.

Freq are frequencies at time 1

Freq1 are frequencies at time 2

id names  variable value Freq Freq.1

1   1   item1   1   13  11
2   2   item2   1   9   96
3   3   item1   2   10  28
4   4   item2   2   15  8
5   5   item1   3   9   80
6   6   item2   3   9   10
7   7   item1   4   11  89
8   8   item2   4   14  8
9   9   item1   5   3   97
10  10  item2   5   25  82

I am using the following code for plotting, and I do like the plot. However I am having some troubles with the legend that I explain below:

theme_nogrid <- function (base_size = 12, base_family = "") {
  theme_bw(base_size = base_size, base_family = base_family) %+replace% 
    theme(panel.grid = element_blank())   
}
plot1<- ggplot(Data, aes(x = variable, y = value, size = Freq, color=Freq.1))+
  geom_point( aes(size = Freq,  stat = "identity", position = "identity"),
              shape = 19, color="black", alpha=0.5) +
  geom_point( aes(size = Freq.1,  stat = "identity", position = "identity"),
              shape = 19, color="red", alpha=0.5) +
  scale_size_continuous(name= "Frequencies ", range = c(2,30))+
  theme_nogrid()

在此处输入图片说明

1- I would like to have two legends: one for color, the other one for size, but i can't get the right arguments to do it (I have consult guide and theme documentation and i can't solve my problem with my own ideas)

2- After having the two legends, I would like to increase the size of the legend shape in order to look bigger (not the text, not the background, just the shape (without actually changing the plot)). Here and example from what I would have and what i would like (that's an example from my real data). As you can see is almost impossible to distinguish the color in the first image.

在此处输入图片说明

Sorry if it's a newbie question, but i can't really get an example of that.

Thanks,

Angulo

Try something like this

library(ggplot2) 
library(tidyr)
d <- gather(Data, type, freq, Freq, Freq.1)
ggplot(d, aes(x = variable, y = value))+
    geom_point(aes(size = freq, colour = type), shape = 19, alpha = 0.5) +
    scale_size_continuous(name = "Frequencies ", range = c(2, 30)) +
    scale_colour_manual(values = c("red", "blue")) +
    theme_nogrid() +
    guides(colour = guide_legend(override.aes = list(size = 10)))

The last line will make the circles in the "colour" legend larger.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM