Question: Calculate Pairwise Wilcox.Test For Several Categories And Plot Significance Into A Boxplot With Ggplot2
gravatar for Biojl
5.9 years ago by
Biojl1.6k wrote:

I have an R dataset that looks pretty much like this one from diamonds:

diamonds2 = subset(diamonds, cut!='Good' & cut!='Very Good', -c(table, x, y, z, clarity, depth, price))

I want to make a boxplot like this one:

ggplot(diamonds2, aes(x=color, y=carat, col=cut))+geom_boxplot()

And the hard question comes here. My idea is to perform pairwise wilcox.test for each distribution of the variable y (carat) by group (cut) and for each of the columns (color).

pairwise.wilcox.test(diamonds2[,'carat'], interaction(diamonds2[,'cut'],diamonds2[,'color']), p.adj = "bonf"

It's not very elegant because is creating a matrix with extra comparisons, but that's the best I got so far. I would like to prune it.

Additionally I would like to plot the results as asterisks of the color between the two distributions I'm comparing. In the first boxplot (D), I would like to plot 3 asterisks, a purple (red and blue are significantly different), a yellow and a cian.

About the asterisk color plotting I've been playing a bit with the function geom_text from ggplot2 but I can't figure out how to plot below the X axis or plot text in different colors.

UPDATE The real data is very similar to the one I posted. The real data are frequencies for all aminoacids in 3 different set of genes. I can plot asterisks/stars with the geom_text in a particular position but can't automatize it to plot significance taking the information from the table I generated and also can't plot in the X axis, above the letter of the aminoacid.

I did the first columns of the significance stars with Gimp, this is how it should look like. test plot

R statistics plot • 5.4k views
ADD COMMENTlink modified 4 months ago by Biostar ♦♦ 20 • written 5.9 years ago by Biojl1.6k

This question is a little daunting to answer as you have a lot of components to your questions. What have you tried already?

Please consider editing your question above to reflect your bioinformatics data set (and not the diamonds example data) and a graphical display of what you want your figure to look like.

ADD REPLYlink written 5.9 years ago by Josh Herr5.6k

Yes, please indicate your specific bioinformatics research problem. Right now this is a generic R/ggplot2 usage question.

ADD REPLYlink written 5.9 years ago by Neilfws48k

I uploaded a test plot, but for some reason is not appearing.

ADD REPLYlink modified 4.6 years ago • written 5.9 years ago by Biojl1.6k
gravatar for Kevin Blighe
9 months ago by
Kevin Blighe43k
Republic of Ireland
Kevin Blighe43k wrote:

Please take a look at my answer here, and follow the comments to get to some code:


The Wilcoxon Signed Rank test itself is easy:

wilcox.test(..., paired=TRUE, ...)


ADD COMMENTlink written 9 months ago by Kevin Blighe43k

I have a doubt i use this ggpubr library for these doing test as well as to plot ,for this im taking rlog values but when i do wlcoxon or KW test the Y axis is not as my expression values what i get is its rank based ,when i just plot normal boxplot i get like range form 0-15 when i use this ggpubr i get range from 0-50 .why is it so?

ADD REPLYlink written 12 weeks ago by krushnach80500

Hey Krushnach. I am not familiar with ggpubr. Is it doing some transformation / scaling on the data?

ADD REPLYlink written 12 weeks ago by Kevin Blighe43k

The normal boxplot [it seems that the links are broken if i add the image]

The boxplot with stats using ggpubr

I guess its doing some transformation which im not sure scaling may not be

ADD REPLYlink modified 12 weeks ago • written 12 weeks ago by krushnach80500

Oh right, but the data-points do not actually differ (?). It looks like ggpubr has just added a whole lot of extra padding at the top. You can probably change the y-axis limits via ggpubr?

ADD REPLYlink written 12 weeks ago by Kevin Blighe43k

okay let me try i thought it might be the rank or something else .

ADD REPLYlink written 12 weeks ago by krushnach80500
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 644 users visited in the last hour