0
votes

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

enter image description here

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.

enter image description here

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

Thanks,

Angulo

1
You might start by improving you code to something like this: plot1<- ggplot(prova, aes(x = variable, y = value, size = Freq, color=Freq.1))+ geom_point(shape = 19, alpha=0.5) + scale_size_continuous(name= "Frequencies ", range = c(2,30))+ scale_color_manuel(values=c("red","black"))+ theme_nogrid()+Wave
@Wave If I do that (that was my initial idea), It didn't return that plot (in fact it returns a warning message and no plot (I'have consider that you spell wrong "scale_color_manuel").Ariadna Angulo

1 Answers

1
votes

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.