By the end of this section you should be able to:
Below you will find some examples of graphs for categorical variables. Of course there are many more graphs available to help you visualise your hypothesis and research question.
Let’s use this minimal example to see how ggplot works.
library(ggplot2)
plot1<-ggplot(EVS_UK, aes(x = gender)) +
geom_bar() +
theme_classic()
plot1 # You can't view the plot unless you call it

Our first step is to give meaningful names to the values of our variable (gender). In our dataset \(1\) represents men and \(2\) women.
plot1<-plot1 + scale_x_discrete(breaks=c("1", "2"),
labels=c("Men", "Women"))
plot1

Let’s give labels to our axes, again we call our plot, plot1 and by using the \(+\) sign we call the labs function, part of ggplot.
plot1<- plot1 +labs( y="Number of cases", x = "Responder's gender")
Additionaly we may create a barplot describing two variables gender and educational level. We build upon the exisitng graph plot1:
plot1<-plot1 + geom_bar(aes(fill = education))
plot1

We can move the position of the legend:
plot1 + theme(legend.position="top")

Or, we may position the legend in the graph:
plot1<-plot1 + theme(legend.position = c(0.25, 0.9),
legend.direction = "horizontal")
plot1

As you may have noticed typically I am using a white background for my graphs. We may change the background by using different backgound themes. The most commonly used themes are the following:
| Function | Theme |
|---|---|
| theme_gray() | Grey background and white gridlines |
| theme_bw() | Classic dark-on-light |
| theme_minimal() | A minimalistic theme with no background annotations |
| theme_classic() | A classic-looking theme, with x and y axis lines and no gridlines |
plot1<-plot1 + theme(legend.position = c(0.3, 0.9),
legend.direction = "horizontal") +
theme_classic()
plot1

Additionaly we can plot the two bars, the one next to the other
plot2<-ggplot(EVS_UK, aes(x = education, fill = gender)) + geom_bar(position = "dodge") +
theme_classic()
plot2

aes()ggplot() + geom_bar