Making a Histogram With Basic R Programming Skills

DexLab Analytics over the course of next few weeks will cover the basics of various data analysis techniques like creating your own histogram in R programming. We will explore three options for this: R commands, ggplot2 and ggvis. These posts are for users of R programming who are in the beginner or intermediate level and who require accessible and easy to understand resources.

Seeking more information? Then take up our R language training course in Gurgaon from DexLab Analytics.

What is a histogram?

A histogram is a category of visual representation of a dataset distribution. As such the shape of a histogram is its most common feature for identification. With a histogram one will be able to see which factor has the relatively higher amount of data and which factors or segments have the least.

Or put in simpler terms, one can see where the middle or median is in a data distribution, and how close or farther away the data would lie around the middle and where would the possible outliers be found. And precisely because of all this histograms will be the best way to understand your data.

But what can a specific shape of a histogram tell us? In short a typical histogram consists of an x-axis and a y-axis and a few bars of varying heights. The y-axis will exhibit how frequently the values on the x-axis are occurring in the data. The y-axis showcases the frequency of the values on the x-axis where the data occurs, the bar group ranges of either values or continuous categories on the x-axis. And the latter explains why the histograms do not have any gaps between the bars.

Step 1: Get your eyes on the data:

As histograms require some amount of data to be plotted initially, you can carry that out by importing a dataset or simply using one which is built into the system of R. In this tutorial we will make use of 2 datasets the built-in R dataset AirPassengers and another dataset called as chol, which is stored into a .txt file and is available for download.

Step 2: Acquaint yourself with The Hist () function:

One can make a histogram in R by opting the easy way where they use The Hist () function, which automatically computes a histogram of the given data values. One would put the name of their dataset in between parentheses to use this function.

Here is how to use the function:

hist(AirPassengers)

But if in case, you want to select a certain column of a data frame like for instance in chol, for making a histogram. The hist function should be used with the dataset name in combination with a \$ symbol, which should be followed by the column name:

Here is a specimen showing the same:

hist(chol\$AGE) #computes a histogram of the data values in the column AGE of the dataframe named “chol”

Step 3: Up the level of the hist () function:

You may find that the histograms created with the previous features seem a little dull. That is because the default visualizations do not contribute much to the understanding of the histograms. One may need to take one more step to reach a better and easier understanding of their histograms. Fortunately, this is not too difficult to accomplish, R has several allowances for easy and fast ways to optimize the visualizations of the diagrams while still making use of the hist () function.

To adapt your histogram you will only need to add more arguments to the hist () function, in this way:

```hist(AirPassengers,
main="Histogram for Air Passengers",
xlab="Passengers",
border="blue",
col="green",
xlim=c(100,700),
las=1,
breaks=5)```

This code will help to compute a histogram of data values from the dataset AirPassengers, with the name “Histogram for Air Passengers” as the title. The x-axis would be labelled as ‘Passengers’ and will have a blue border with a green colour to the bins, while limiting the x-axis with a range of 100 to 700 and rotating the printed values on the y-axis by 1 while changing  the bin width by 5.

We know what you are thinking – this is a humungous string of code. But do not worry, let us break it down into smaller pieces to see what each component holds.

Name/colours:

You can alter the title of the histogram by adding main as an argument to the hist () function.

This is how:

hist(AirPassengers, main=”Histogram for Air Passengers”) #Histogram of the AirPassengers dataset with title “Histogram for Air Passengers”

For adjusting the label of the x-axis you can add xlab as the feature. Similarly one can also use ylab to label the y-axis.

This code would work:

hist(AirPassengers, xlab=”Passengers”, ylab=”Frequency of Passengers”) #Histogram of the AirPassengers dataset with changed labels on the x-and y-axes hist(AirPassengers, xlab=”Passengers”, ylab=”Frequency of Passengers”) #Histogram of the AirPassengers dataset with changed labels on the x-and y-axes

If in case you would want to change the colours of the default histogram you can simply choose to add the arguments border or col. Adjusting would be easy, as the name itself kind of gives away the borders and the colours of the histogram.

hist(AirPassengers, border=”blue”, col=”green”) #Histogram of the AirPassengers dataset with blue-border bins with green filling

Note: you must not forget to put the names and the colours within “ ”.

For x and y axes:

To change the range of the x and y axes one can use the xlim and the ylim as arguments to the hist function ():

The code to be used is:

hist(AirPassengers, xlim=c(100,700), ylim=c(0,30)) #Histogram of the AirPassengers dataset with the x-axis limited to values 100 to 700 and the y-axis limited to values 0 to 30

Point to be noted in this case, is the c() function is used for delimiting the values on the axes when one is suing the xlim and ylim functions. It takes 2 values the first being the begin value and the second being the end value.

Make sure to rotate the labels on the y-axis by adding 1as=1 as the argument, the argument 1as can be 0, 1, 2 or 3.

The code to be used:

hist(AirPassengers, las=1) #Histogram of the AirPassengers dataset with the y-values projected horizontally

Depending on the option one chooses the placement of the label will vary: like for instance, if you choose 0 the label will always be parallel to the axis (the one that is the default). And if one chooses 1, The label will be horizontally put. If you want the label to be perpendicular to the axis then pick 2 and for placing it vertically select 3.

For bins:

One can alter the bin width by including breaks as an argument, in combination with the number of breakpoints which one wants to have.

This is the code to be used:

hist(AirPassengers, breaks=5) #Histogram of the AirPassengers dataset with 5 breakpoints

If one wants to have increased control over the breakpoints in between the bins, then they can enrich the breaks arguments by adding in it vector of breakpoints, one can also do this by making use of the c() function.

hist(AirPassengers, breaks=c(100, 300, 500, 700)) #Compute a histogram for the data values in AirPassengers, and set the bins such that they run from 100 to 300, 300 to 500 and 500 to 700.

But the c () function can help to make your code very messy at times, which is why we recommend using add = seq(x,y,z) instead. The values of x, y and z are determined by the user and represented in a specific order of appearance, the starting number of x-axis  and the last number of the same as well as the intervals in which these numbers are to appear.

A noteworthy point to be mentioned here is that one can combine both the functions:

hist(AirPassengers, breaks=c(100, seq(200,700, 150))) #Make a histogram for the AirPassengers dataset, start at 100 on the x-axis, and from values 200 to 700, make the bins 150 wide

Here is the histogram of AirPassengers:

How to Make a Histogram with Basic R – (Image Courtesy  r-bloggers)

Please note that this is the first blog tranche in a list of 3 posts on creating histograms using R programming.

For more information regarding R language training and other interesting news and articles follow our regular uploads at all our channels.

This post originally appeared onwww.r-bloggers.com/how-to-make-a-histogram-with-basic-r

Interested in a career in Data Analyst?

Comments are closed here.

+91 931 572 5902