# R Language Bar Chart barplot() function

## Example

In barplot, factor-levels are placed on the x-axis and frequencies (or proportions) of various factor-levels are considered on the y-axis. For each factor-level one bar of uniform width with heights being proportional to factor level frequency (or proportion) is constructed.

The `barplot()` function is in the graphics package of the R's System Library. The `barplot()` function must be supplied at least one argument. The R help calls this as `heights`, which must be either vector or a matrix. If it is vector, its members are the various factor-levels.

To illustrate `barplot()`, consider the following data preparation:

``````> grades<-c("A+","A-","B+","B","C")
> Marks
 "A+" "A-" "B+" "A-" "A+" "B"  "A+" "B+" "A-" "B"  "A+" "A-"
 "A-" "B+" "A-" "A-" "A-" "A-" "A+" "A-" "A+" "A+" "C"  "C"
 "B"  "C"  "B+" "C"  "B+" "B+" "B+" "A+" "B+" "A-" "A+" "A-"
 "A-" "B"  "C"  "A+"
>
``````

A bar chart of the Marks vector is obtained from

``````> barplot(table(Marks),main="Mid-Marks in Algorithms")
`````` Notice that, the barplot() function places the factor levels on the x-axis in the `lexicographical order` of the levels. Using the parameter `names.arg`, the bars in plot can be placed in the order as stated in the vector, grades.

``````# plot to the desired horizontal axis labels
`````` Colored bars can be drawn using the `col=` parameter.

``````> barplot(table(Marks),names.arg=grades,col = c("lightblue",
"lightcyan", "lavender", "mistyrose",  "cornsilk"),
main="Mid-Marks in Algorithms")
`````` A bar chart with horizontal bars can be obtained as follows:

``````> barplot(table(Marks),names.arg=grades,horiz=TRUE,col = c("lightblue",
"lightcyan", "lavender", "mistyrose",  "cornsilk"),
main="Mid-Marks in Algorithms")
`````` A bar chart with proportions on the y-axis can be obtained as follows:

``````> barplot(prop.table(table(Marks)),names.arg=grades,col = c("lightblue",
"lightcyan", "lavender", "mistyrose",  "cornsilk"),
main="Mid-Marks in Algorithms")
`````` The sizes of the factor-level names on the x-axis can be increased using `cex.names` parameter.

``````> barplot(prop.table(table(Marks)),names.arg=grades,col = c("lightblue",
"lightcyan", "lavender", "mistyrose",  "cornsilk"),
main="Mid-Marks in Algorithms",cex.names=2)
`````` The `heights` parameter of the `barplot()` could be a matrix. For example it could be matrix, where the columns are the various subjects taken in a course, the rows could be the labels of the grades. Consider the following matrix:

``````> gradTab
Algorithms Operating Systems Discrete Math
A-         13                10             7
A+         10                 7             2
B           4                 2            14
B+          8                19            12
C           5                 2             5
``````

To draw a stacked bar, simply use the command:

``````> barplot(gradTab,col = c("lightblue","lightcyan",
main="Mid-Marks in Algorithms")
`````` To draw a juxtaposed bars, use the `besides` parameter, as given under:

`````` > barplot(gradTab,beside = T,col = c("lightblue","lightcyan",
main="Mid-Marks in Algorithms")
`````` A horizontal bar chart can be obtained using `horiz=T` parameter:

``````> barplot(gradTab,beside = T,horiz=T,col = c("lightblue","lightcyan",  PDF - Download R Language for free