How to manually fill colors in a ggplot2 histogram

前端 未结 1 1360

I am generating a histogram and I would like to color certain groups with specific colors. Here is my histogram:

1条回答
  •  借酒劲吻你
    2020-12-09 13:12

    UPDATED VERSION

    No need to specify grouping column, ggplot command is much more compact.

    library(ggplot2)
    set.seed(1234)
    
    # Data generating block
    df <- data.frame(x=sample(1:14, 1000, replace=T))
    # Colors
    colors <- c(rep("red",7), rep("blue",4), rep("orange",3))
    
    ggplot(df, aes(x=x)) +
      geom_histogram(fill=colors) +
      scale_x_discrete(limits=1:14)
    

    enter image description here

    OLD VERSION

    library(ggplot2)
    
    # 
    # Data generating block
    #
    df <- data.frame(x=sample(c(1:14), 1000, replace=TRUE))
    df$group <- ifelse(df$x<=7, 1, ifelse(df$x<=11, 2, 3))
    
    #
    # Plotting
    #
    ggplot(df, aes(x=x)) +
      geom_histogram(data=subset(df,group==1), fill="red") +
      geom_histogram(data=subset(df,group==2), fill="blue") +
      geom_histogram(data=subset(df,group==3), fill="orange") +
      scale_x_discrete(breaks=df$x, labels=df$x)
    

    enter image description here

    0 讨论(0)
提交回复
热议问题