# [R] Barplot - Can't figure it out

T Petersen Innkeyp-r at yahoo.com
Fri Feb 18 14:00:51 CET 2005

```Yeah, that's it. I have to catagorize the data AND tell R how many
catagories there are. It works perfectly now and I've learned some
more:-D Great.

Achim Zeileis wrote:

>On Fri, 18 Feb 2005 13:00:40 +0100 T Petersen wrote:
>
>
>
>>Wow, I'm getting confused...The syntax Petr suggested does what I
>>wanted, but things are stille wrong...Maybe a bug? Let me explain.
>>
>>I got two vectors:
>>
>>x = c(3, 3, 3, 4, 3, 4, 3, 4, 3, 4)
>>
>>y = c(5, 2, 5, 5, 2, 2, 5, 5, 4, 2)
>>
>>then I do the barplot you suggest
>>
>>barplot(rbind(table(x), table(y)), beside=T)
>>
>>but things are wrong(there is no bar for catagory "3") and I get an
>>error message: Warning message:
>>number of columns of result
>>        not a multiple of vector length (arg 1) in:
>>        rbind(table(Quest1), table(Quest2))
>>
>>Any ideas?
>>
>>
>
>If x and y are categorical variables, you should tell R so (i.e.,
>convert to a factor) and if both should have the same categories (i.e.,
>levels) you can supply this information as well:
>
>R> x <- factor(x, levels = 2:5)
>R> y <- factor(y, levels = 2:5)
>
>Then, table() knows which categories to use:
>
>R> rbind(x = table(x), y = table(y))
>  2 3 4 5
>x 0 6 4 0
>y 4 0 1 5
>
>and also the barplot() call given above will do the right thing.
>Z
>
>
>
>>Petr Pikal wrote:
>>
>>
>>
>>>Hi
>>>
>>>If I understand correctly
>>>
>>>barplot(rbind(table(x), table(y)), beside=T)
>>>
>>>does what you want.
>>>
>>>Cheers
>>>Petr
>>>
>>>
>>>
>>>On 18 Feb 2005 at 7:51, T Petersen wrote:
>>>
>>>
>>>
>>>
>>>
>>>>Almost. Catagories aren't stacked - I would like to see that x has 2
>>>>instances of "1" while y has 1 instance of "1". What's more, there
>>>>
>>>>
>>>are>now TWO distinct barplots - the left one shows x, while the right
>>>one>shows y. I could live with that, but what I'd ideally want is to
>>>have>x and y beside each other for EACH catagory - so for catagory
>>>"1" you>could see taht there are more x's than y's (two x's versus
>>>one y). But>thanks for the help
>>>
>>>
>>>>Mulholland, Tom wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>barplot(matrix(c(x,y),ncol = 2),beside=T)
>>>>>
>>>>>Does this help
>>>>>
>>>>>?barplot notes
>>>>>
>>>>>height: either a vector or matrix of values describing the bars
>>>>>
>>>>>
>>>which>>         make up the plot.  If 'height' is a vector, the plot
>>>
>>>
>>>>>        consists of a sequence of rectangular bars with heights
>>>>>        given by the values in the vector.  If 'height' is a
>>>>>
>>>>>
>>>matrix>>         and 'beside' is 'FALSE' then each bar of the plot
>>>
>>>
>>>>>        corresponds to a column of 'height', with the values in
>>>>>
>>>>>
>>>the>>         column giving the heights of stacked "sub-bars" making
>>>up>>         the bar.  If 'height' is a matrix and 'beside' is
>>>'TRUE',>>         then the values in each column are juxtaposed
>>>rather than>>         stacked.
>>>
>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>-----Original Message-----
>>>>>>From: T Petersen [mailto:Terji78 at yahoo.com]
>>>>>>Sent: Friday, 18 February 2005 1:35 PM
>>>>>>To: Kevin Wang
>>>>>>Cc: r-help at stat.math.ethz.ch
>>>>>>Subject: Re: [R] Barplot - Can't figure it out
>>>>>>
>>>>>>
>>>>>>Ups, it should of course be barplot() in my mail, not boxplot:-)
>>>>>>
>>>>>>Kevin Wang wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>>Hi,
>>>>>>>
>>>>>>>T Petersen wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>Hi,
>>>>>>>>
>>>>>>>>I have two catagorical vectors like this;
>>>>>>>>
>>>>>>>>x = c(1, 2, 4, 2, 1)
>>>>>>>>y = c(2, 4, 2 ,4, 1)
>>>>>>>>
>>>>>>>>I want to set up a barplot with the catagories 1-4
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>horizontally  and
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>>>number of occurances vertically for each vector x,y. I've tried
>>>>>>>>
>>>>>>>>boxplot(table(x,y), beside=T)
>>>>>>>>
>>>>>>>>and
>>>>>>>>
>>>>>>>>boxplot(c(x,y), beside=T)
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>Have you tried barplot(), instead of boxplot()???
>>>>>>>
>>>>>>>Cheers,
>>>>>>>
>>>>>>>Kev
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>______________________________________________
>>>>>>R-help at stat.math.ethz.ch mailing list
>>>>>>https://stat.ethz.ch/mailman/listinfo/r-help
>>>>>>http://www.R-project.org/posting-guide.html
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>______________________________________________
>>>>>R-help at stat.math.ethz.ch mailing list
>>>>>https://stat.ethz.ch/mailman/listinfo/r-help
>>>>>http://www.R-project.org/posting-guide.html
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>______________________________________________
>>>>R-help at stat.math.ethz.ch mailing list
>>>>https://stat.ethz.ch/mailman/listinfo/r-help
>>>>http://www.R-project.org/posting-guide.html
>>>>
>>>>
>>>>
>>>>
>>>Petr Pikal
>>>petr.pikal at precheza.cz
>>>
>>>______________________________________________
>>>R-help at stat.math.ethz.ch mailing list
>>>https://stat.ethz.ch/mailman/listinfo/r-help
>>>http://www.R-project.org/posting-guide.html
>>>
>>>
>>>
>>>
>>>
>>______________________________________________
>>R-help at stat.math.ethz.ch mailing list
>>https://stat.ethz.ch/mailman/listinfo/r-help
>>http://www.R-project.org/posting-guide.html
>>
>>
>>
>
>______________________________________________
>R-help at stat.math.ethz.ch mailing list
>https://stat.ethz.ch/mailman/listinfo/r-help