How to create a barplot in R
In playing with the
fivethirtyeight R package for another Storybench tutorial, we learned some basics of plotting a bar chart in R using data from a csv. Below, we’ve outlined the steps we’ve taken to create a barplot in R using murders_final_sort.csv, cleaned and created in this tutorial.
Load the csv
In RStudio, load the csv file.
murders_final_sort <- read.csv(file="murders_final_sort.csv")
Read the column names in RStudio’s console with
Create a simple barplot
barplot(murders_final_sort$change) you can plot the “change” column. Run the script and you’ll see this:
Extend the y-axis
To extend the y-axis to -20, add:
barplot(murders_final_sort$change, ylim = c(-20, 120))
Finally, we’ll add some labels. There are many different ways to add labels in R. Let’s start with simple labels, added with
names.arg, whose font is made smaller with
cex.names. They are made perpendicular with
las = 2.
barplot(murders_final_sort$change, ylim = c(-20, 120), names.arg = murders_final_sort$city, las = 2, cex.names = 0.6)
Add a title and place labels at 60 degrees
The following code gets a little complicated and there are several other ways to achieve this end result. Notice
srt = 60 places the labels at 60 degrees while
y = -20 and
offset = -0.1 help move the labels around. Finally,
pos = 2 justifies them right. To read more about those, go here.
midpts <- barplot(murders_final_sort$change, cex.axis = 1.0, cex.names = 0.6, ylim = c(-20, 120), main = "Change in murders from 2014 to 2015" ) text(murders_final_sort$city, x = midpts, offset = -0.1, y = -20, cex = 0.5, srt = 60, xpd = TRUE, pos = 2 )
The final barplot should look like this: