Last Updated
Viewed 10,647 Times
        

I'm trying to plot a boxplot graph with my data, using 'ggplot' in R, but I just can't do it. Can anyone help me out? The data is like the table below:

Paratio  ShapeIdx  FracD   NNDis   Core
-3.00    1.22    0.14    2.71    7.49
-1.80    0.96    0.16    0.00    7.04
-3.00    1.10    0.13    2.71    6.85
-1.80    0.83    0.16    0.00    6.74
-0.18    0.41    0.27    0.00    6.24
-1.66    0.12    0.11    2.37    6.19
-1.07    0.06    0.14    0.00    6.11
-0.32    0.18    0.23    0.00    5.93
-1.16    0.32    0.15    0.00    5.59
-0.94    0.14    0.15    1.96    5.44
-1.13    0.31    0.16    0.00    5.42
-1.35    0.40    0.15    0.00    5.38
-0.53    0.25    0.20    2.08    5.32
-1.96    0.36    0.12    0.00    5.27
-1.09    0.07    0.13    0.00    5.22
-1.35    0.27    0.14    0.00    5.21
-1.25    0.21    0.14    0.00    5.19
-1.02    0.25    0.16    0.00    5.19
-1.28    0.22    0.14    0.00    5.11
-1.44    0.32    0.14    0.00    5.00

And what I exactly want is a boxplot of each column, without any relation "column by column".

I have a follow up question to this question regarding plotting a boxplot for every column of a table.

I have a similar table like in the example shown, and I have plotted a box plot for every column of my matrix. On top of this, I have group labels assigned for each column eg:

Paratio  = grp1
ShapeIdx   = grp2
FracD    = grp2
NNDis    = grp2
Core = grp1

I want to color my box plots based on these groups (instead of coloring based on variable). Could someone show me how to do that ?

Thanks K

Similar Question 2 : Boxplot in R using ggplot2

I'm new to R and have been trying to make a boxplot. A part of the data I'm using is shown

            h1          h2          h3          h4          h5          h6          h7          h8          h9         h10
1  0.003719430 0.002975544 0.003049933 0.003421876 0.003421876 0.003347487 0.003645042 0.003496264 0.007364472 0.009075410
2  0.003400540 0.002749373 0.003038781 0.003328188 0.003328188 0.003400540 0.003472892 0.003400540 0.007741656 0.009333398
3  0.003741387 0.002918282 0.003142765 0.003367248 0.003367248 0.003367248 0.003666559 0.003516904 0.008081396 0.008156223
4  0.003870634 0.002884002 0.003187581 0.003339370 0.003567055 0.003415265 0.003794739 0.003491160 0.008348426 0.007741268
5  0.003782963 0.002950711 0.003177689 0.003480326 0.003404667 0.003404667 0.003707304 0.003631645 0.008927793 0.007414608
6  0.003643736 0.002884624 0.003264180 0.003416002 0.003491913 0.003416002 0.003871469 0.003795558 0.009033428 0.007135649
7  0.003718600 0.003035592 0.003111482 0.003339151 0.003566821 0.003566821 0.003642710 0.003870380 0.008120209 0.008044319
8  0.003819313 0.002979064 0.003284609 0.003360995 0.003590154 0.003437382 0.003895699 0.003590154 0.008326102 0.007791398
9  0.003899334 0.002981844 0.003211216 0.003364131 0.003669961 0.003440589 0.003746419 0.003669961 0.008410328 0.007569295
10 0.003828488 0.002986220 0.003292499 0.003445639 0.003522209 0.003522209 0.003598778 0.003598778 0.008422673 0.007810115

When I use the default boxplot command then this is what I get

boxplot(df)

enter image description here

I have been trying to generate the boxplot for same data using ggplot2 but it gives an error which I am unable to resolve. Here's what I tried.

library(ggplot2)
df <- readRDS('data.Rda')
ggplot(df) + geom_boxplot()

Here's the error

Don't know how to automatically pick scale for object of type data.frame. Defaulting to continuous
Error: Aesthetics must either be length one, or the same length as the dataProblems:df[, 6:15]

I saw the ggplot2 docs for geom_boxplot and realize (from the example) that I need to rearrange my data like

col1        col2
h1   0.003719430
h1   0.003400540
h1   0.003741387
h1   0.003870634
h1   0.003782963
h1   0.003643736
h2   0.002975544
h2   0.002749373
h2   0.002918282
h2   0.002884002
h2   0.002950711
h2   0.002884624
...

and use something like

ggplot(df, aes(factor(col1), col2)) + geom_boxplot()

But that is a lot of work. I believe that there must be some way to do this automatically which I'm not able to find. Any help is appreciated.

Similar Question 3 : ggplot2 boxplot from count table

I have a count table that I have generated with another tool, and I would like to get a boxplot from it with ggplot2.

For instance, suppose that I have:

df1 = data.frame(nSiblings = c(0, 1, 2), count = c(10, 15, 12))

instead of

df2 = data.frame(nSiblings = c(rep(0, 10), rep(1, 15), rep(2, 12)))

I know how to produce a boxplot from the second data frame:

qplot(y=df2$nSiblings, x=1, geom = "boxplot")

I know how to produce a histogram from the first data frame:

ggplot(df1, aes(x = nSiblings, y = count)) + geom_bar(stat = "identity")

But how can I get a boxplot from the first data frame?

Similar Question 4 (4 solutions) : Combination Boxplot and Histogram using ggplot2

Similar Question 5 (1 solutions) : simple boxplot using qplot/ggplot2

Similar Question 6 (3 solutions) : annotate boxplot in ggplot2

Similar Question 7 (1 solutions) : Creating a boxplot, ggplot2

Similar Question 8 (2 solutions) : ggplot2 boxplot

Similar Question 9 (1 solutions) : ggplot2 width of boxplot

cc