Search code examples
rggplot2sizemarkerfacet-grid

Different marker with increasing size in faceting


In my sample code below, I would like to have different marker instead circle only for each Grade with size of my choice. right now the size is based on the sequence of alphabet- I would like to bump it up at least two levels as the current starting size (starting with Grade A) is too small.

library(tidyverse)

DF1 = data.frame(Grade = c("A","B","C","D"), Fee = c(50, 100,80, 60), ST1 = c(0.5, 0.7, 0.67,0.60),
                 ST2 = c(0.48, 0.8, 0.697,0.77), ST3 = c(0.53, 0.58, 0.57,0.62), type = rep("Teenage",4))
DF2 = data.frame(Grade = c("A","B","C","D"), Fee = c(60, 120,90, 70), ST1 = c(0.55, 0.73, 0.65,0.70),
                 ST2 = c(0.58, 0.82, 0.73,0.75), ST3 = c(0.55, 0.52, 0.58,0.62), type = rep("Overage",4))

DFPlot_1 = gather(data = DF1, key = "Variable", value = "Value", -Fee, -Grade, -type)
DFPlot_2 = gather(data = DF2, key = "Variable", value = "Value", -Fee, -Grade, -type)

DF =rbind(DFPlot_1,DFPlot_2)
ggplot(data = DF, aes(x= Fee, color = Grade, size = Grade))+
  geom_point(aes(y = Value))+ facet_grid(type ~ Variable)

Here is the Figure that i get while running the above code- see the sizes (A is almost non-visibile). I would like to have increasing size but starting with a higher level. enter image description here


Solution

  • As mentioned above you want to use scale_size_manual. You have several ways to adjust the sizes (read documentation), but an example adapted to your case is :

    ggplot(data = DF, aes(x= Fee, color = Grade, size = Grade))+
      geom_point(aes(y = Value))+ facet_grid(type ~ Variable) + 
      scale_size_manual(values = c(4,5,6,7))