TAGS

Recent Posts

Archives

Creating Bar Charts: Step Twelve in Learning R Programming for Free
Posted on May 21, 2019
Author: Linda Stewart, Performance Architects

I hope you are enjoying the “Learning R Programming for Free” series; here are links to the previous segments (Step OneStep TwoStep ThreeStep FourStep FiveStep SixStep SevenStep EightStep NineStep Ten, Step Eleven) to provide some helpful background.

In the previous installment, we discussed the functions in the “rio package.” In this segment, we extend our mtcars data set, and then use ggplot to create some bar charts.

Bar charts are very useful when we need to count things.  We can also use them to compare counts.

Let’s make sure rio is installed:

install.packages(“rio”)

library(rio)

The data set we will use was built in Step Eight of this blog series.  Let’s save our updated mtcars data set from Step Eight to an Excel file:

export(mydf, “c:/mycars.xlsx”)

and now if we go to our C: drive, we find our cars data in mycars.xlsx:

Next, let’s add a manufacturer’s column and a Boolean metric indicating if the car is a sports car to our data set.  Then, we will re-import the enhanced data:

mycars <- import(“c:/mycars1.xlsx”)

head(mycars)

We imported our data into the object “mycars.”

We can see that we now have two characters that look like an arrow, <- (this is one of the assignment operators in R).  In this case, we are loading (assigning) the contents of our Excel file into the object “mycars.”

The head function is handy to look at the first few lines of a data set. It takes an object as an argument and it functions on vector, matrix, table, data frame or function classes.

You may recall earlier in our installments when we used class() to get our object type?

class(mycars)

[1] “data.frame”

Our “mycars” data is of type “data.frame.”  This will be important later on when we learn certain functions only work on certain types of data.  We will continue that discussion later.  For now, remember that when we use the import function from the rio package, it creates data frames.  Now, back to ggplot.

Let’s take a look at ggplot bar charting features.  Here is a very simple plot of the count of cars with a certain number of cylinders, 4, 6 and 8:

ggplot(mycars, aes(cyl)) + geom_bar()

Not the most beautiful chart ever made but it’s a place to start.  A few things to notice.  We only had to declare what we wanted to count, “cyl.”  For bar charts in ggplot, the count is calculated automatically through a built-in binning feature.

Let’s break this down a bit.  To use ggplot, we need three basic things: DATA, AESTHETICS, and GEOMETRY.  Ggplot allows us to layer multiple geometries.  We can also label our plot, add colors and themes.

First, we call ggplot. Then, the first argument is the data frame we want to use.  The second argument is what is called the aesthetics (aes).  Then we use the plus sign to append on the chart type we want.  For bar charts, that would be “geom_bar().”

Let’s color the bars (select your favorite color; mine is blue):

ggplot(mycars, aes(cyl)) + geom_bar(varwidth=T, fill=”blue”)

Let’s add a title:

ggplot(mycars, aes(cyl)) + geom_bar(varwidth=T, fill=”blue”) + labs(title=”Cylinders for data set: ‘mycars'”)

There are many more plot types in ggplot2, including pie charts, tree maps, heat maps, box plots, slope charts and many more.  As we have observed thus far, ggplot2 is very popular for visualizations in R due to the pleasing appearance (aesthetics).  We have already looked at how to pull in our data from Excel, put a title on our plots and color the base geometry.  There are many more things we can do in ggplot2 which provides some of the best tools for visualizing data, for free.  We will continue to explore this package in our next installment where we will look at stacked bar charts and themes.

Additional blog posts on more complex R concepts to follow; please contact communications@performancearchitects.com if you have any questions or need further help!

Share
© Performance Architects, Inc. and Performance Architects Blog, 2006 - present. Unauthorized use and/or duplication of this material without express and written permission from this blog's author and/or owner is strictly prohibited. Excerpts and links may be used, provided that full and clear credit is given to Performance Architects, Inc. and Performance Architects Blog with appropriate and specific direction to the original content.

Leave a Reply

Your email address will not be published. Required fields are marked *