Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Issues using ggplot2 aes_string with box plots

Tags:

r

ggplot2

I seem to be having problems using ggplot2.

I get the following error while trying to plot box plots with the aes_string:

Error: stat_boxplot requires the following missing aesthetics: x, y

Here is an example:

x='group'
y='value'
df=data.frame(group=c('A','A','B','B','C','C'),value=c(1,2,3,4,5,6))
ggplot(data=df,aes_string(x,y)) + geom_boxplot() #returns the error
ggplot(data=df,aes(x,y)) + geom_boxplot() #plots nonsense (naturally)
ggplot(data=df,aes(group,value)) + geom_boxplot() #works, but not strings

Any suggestions on how I can make this work with strings?

like image 874
egor.ananyev Avatar asked Jan 10 '13 21:01

egor.ananyev


1 Answers

aes allows the first two arguments to be unnamed and are assumed to be x and y (respectively); aes_string does not have this shortcut, and so all arguments must be named. Try:

ggplot(data=df,aes_string(x='group',y='value')) + geom_boxplot()
like image 80
Harpal Avatar answered Sep 22 '22 00:09

Harpal