How to change x-axis tick label names, order and boxplot colour using R ggplot?

后端 未结 2 1029
无人及你
无人及你 2020-12-04 23:05

I have a folder containing csv files, each with two columns of data e.g.:

0,red
15.657,red
0,red
0,red
4.429,red
687.172,green
136.758,green
15.189,red
0.15         


        
相关标签:
2条回答
  • 2020-12-04 23:05

    Yes, you can do this. Use scale_color_manual, scale_fill_manual and scale_x_discrete as follows:

    # specify colors and order 
    colorder <- c( "green", "orange", "red", "blue") 
    bplot<-ggplot(boxplots, aes(Lineage, RPKM)) + 
      geom_boxplot(aes(fill=factor(Lineage))) + 
      geom_point(aes(colour=factor(Lineage))) + 
      scale_color_manual(breaks=colorder, # color scale (for points)
                         limits=colorder, 
                         values=colorder) +
      scale_fill_manual(breaks=colorder,  # fill scale (for boxes)
                        limits=colorder, 
                        values=colorder) +
      scale_x_discrete(limits=colorder)   # order of x-axis
    
    0 讨论(0)
  • 2020-12-04 23:25

    Building off of @shadow's answer, here's how you can manually change the x-axis labels. I also threw in a couple other changes which help improve the look of the graph and legend:

    colorder <- c( "green", "orange", "red", "blue")
    bplot<-ggplot(temp, aes(Lineage, RPKM)) + 
        geom_boxplot(aes(fill=factor(Lineage))) + 
        geom_point(aes(colour=factor(Lineage))) + 
        scale_color_manual(breaks=colorder, # color scale (for points)
                         limits=colorder, 
                         values=colorder,
                         labels=c("hESC1","hESC2","hESC3","hESC4"),
                         name="Group") +
        scale_fill_manual(breaks=colorder,  # fill scale (for boxes)
                         limits=colorder, 
                         values=colorder,
                         labels=c("hESC1","hESC2","hESC3","hESC4")
                         name="Group") +
        scale_x_discrete(limits=colorder,labels=c("hESC1","hESC2","hESC3","hESC4")) +
        theme_bw()
    

    Adding the labels option to the scale_x_discrete layer of the plot allows you to change the axis labels. Adding labels to both scale_fill_manual and scale_color_manual allows you to change the legend labels. Adding name to both lets you change the legend heading. Finally, I added theme_bw() to the plot to make the background white and add a border around the plot. Hope that helps!

    enter image description here

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