On 7/7/2010 1:11 PM, Ian Bentley wrote:
Hi all,

I'm trying to use ggplot to make a boxplot of some data, but I can't seem to
figure out how to make it use the data I'm giving it.

The data is in a data.frame so that it has two columns:

meltl
value L1
1234  1
1234  1
1235  1
...
1255  1
2335  2
3444  2
...
10001 50
12311 50
...

The first column is my x value, the second is my y.

I'd like to produce one boxplot for each point on the graph, 50 in total
(for this case).  When I try something like:

p<- ggplot(meltl, aes(L1, value))
p + geom_boxplot()

I get one giant boxplot, which tells me nothing much.

Can anyone give me a helping hand?

You are getting one boxplot because ggplot sees L1 is a continuous variable, and so creates just one box, but covering the range of L1. You need to let ggplot know that you consider L1 to be an indicator of category membership, rather than a continuous value. Either of the following should work (untested since I don't have your meltl):

ggplot(meltl, aes(factor(L1), value)) + geom_boxplot()

This version turns L1 into a factor (categorical variable), so when ggplot creates boxplots, it does so for each level of the used factor(s).

ggplot(meltl, aes(L1, value, group=L1)) + geom_boxplot()

Here, L1 is still a continuous variable, but when ggplot goes to make boxplots, it is told to do so for each unique value of L1 separately. The two are not identical (first has a discrete x axis, the second a continuous one), but are very similar.

--
Brian Diggs
Senior Research Associate, Department of Surgery, Oregon Health & Science University

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to