userJT
userJT

Reputation: 11934

How do you draw a boxplot without specifying x axis?

The base graphics can nicely plot a boxplot using a simple command

data(mtcars)
boxplot(mtcars$mpg)

enter image description here

But qplot requires y axis. How can I achieve with qplot the same like base graphics boxplot and not get this error?

qplot(mtcars$mpg,geom='boxplot')
Error: stat_boxplot requires the following missing aesthetics: y

Upvotes: 10

Views: 19686

Answers (3)

Didzis Elferts
Didzis Elferts

Reputation: 98449

You have to provide some dummy value to x. theme() elements are used to remove x axis title and ticks.

ggplot(mtcars,aes(x=factor(0),mpg))+geom_boxplot()+
   theme(axis.title.x=element_blank(),
    axis.text.x=element_blank(),
    axis.ticks.x=element_blank())

Or using qplot() function:

qplot(factor(0),mpg,data=mtcars,geom='boxplot')

enter image description here

Upvotes: 23

Medhat
Medhat

Reputation: 1652

you can set the x aesthetics to factor(0) and tweak the appearance by removing unwanted labels:

ggplot(mtcars, aes(x = factor(0), mpg)) +
    geom_boxplot() + 
    scale_x_discrete(breaks = NULL) +
    xlab(NULL)

enter image description here

Upvotes: 3

agstudy
agstudy

Reputation: 121568

You can also use latticeExtra, to mix boxplot syntax and ggplot2-like theme:

bwplot(~mpg,data =mtcars,
        par.settings = ggplot2like(),axis=axis.grid)

enter image description here

Upvotes: 2

Related Questions