Home > front end >  color ggplot using specific pallette
color ggplot using specific pallette

Time:05-18

How can I color the plots such that -

A1 - Dark blue, A2 - Light blue, B1 - Dark red, B2 - Light red

tbl <- tibble(x = c(rnorm(n = 100, mean = 0, sd = 1),
                    rnorm(n = 100, mean = 0, sd = 0.5),
                    rnorm(n = 100, mean = 4, sd = 1),
                    rnorm(n = 100, mean = 4, sd = 0.5)),
              y = c(rep("A1", 100),
                    rep("A2", 100),
                    rep("B1", 100), 
                    rep("B2", 100))
              )

              
ggplot(data = tbl, 
       aes(x = x,
           fill = y))   
  geom_histogram(color = "black",
                 alpha = 0.5)   
  theme_bw()

CodePudding user response:

I arbitrarily chose the colors (Dark blue ~ Light Red).
You can change the colors manually using hexcode in sclae_fill_manual.

tbl <- tibble(x = c(rnorm(n = 100, mean = 0, sd = 1),
                    rnorm(n = 100, mean = 0, sd = 0.5),
                    rnorm(n = 100, mean = 4, sd = 1),
                    rnorm(n = 100, mean = 4, sd = 0.5)),
              y = c(rep("A1", 100),
                    rep("A2", 100),
                    rep("B1", 100), 
                    rep("B2", 100))
)


ggplot(data = tbl, 
       aes(x = x,
           fill = y))   
  geom_histogram(color = "black",
                 alpha = 0.5)   
  scale_fill_manual(values = c('#2C3FF6','#72B5FC','#F62C2C','#F0C3C3')) 
  theme_bw()
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Created on 2022-05-18 by the reprex package (v2.0.1)

CodePudding user response:

Similar to the answer above but a little more verbose using a named vector of colors.

    # Create a named vector of colors
    # There is no R color named "light red" therefore I used red instead. 
    colours <- c(A1= "darkblue", A2="lightblue", B1= "darkred", B2= "red")

    ggplot(data = tbl, 
           aes(x = x,
               fill = y))   
      geom_histogram(color = "black",
                     alpha = 0.5)   
      scale_fill_manual(values = colours)  
      theme_bw()
  • Related