Histograms are powerful visualizations that allow us to analyze the distribution of data. In this tutorial, we will learn how to create a histogram in R, step by step. We will explore the basic concepts of histograms, understand the necessary functions, and customize the plot according to our requirements.

Understanding Histograms

A histogram is a graph that represents the frequency distribution of continuous variables. It provides insights into how data is distributed across different ranges or bins. Histograms are particularly useful for exploratory data analysis, as they help us identify patterns, outliers, and the overall shape of the data.

Getting Started with R Programming

Before we dive into creating histograms, let’s ensure that we have R installed on our system. If you haven’t installed R yet, you can download it from the official website. Once you have R installed, open your preferred R IDE or the R console to follow along.

Step 1: Loading the Dataset

To create a histogram, we need data. For this tutorial, we will use a housing dataset that contains information about house prices. Let’s start by loading the dataset into our R environment using the read.csv() function:

home_data <- read.csv("https://raw.githubusercontent.com/rashida048/Datasets/master/home_data.csv")[ ,c('price', 'condition')]

Step 2: Exploring the Data

Before plotting the histogram, it’s always a good idea to explore the data and get a sense of its structure. Let’s take a quick look at the first few rows of the dataset using the head() function:

head(home_data, 5)

Step 3: Creating a Basic Histogram

Now that we have our dataset ready, we can proceed to create our first histogram. In R, we use the hist() function to generate a histogram. Let’s plot the distribution of house prices using this function:


Step 4: Adding Descriptive Statistics

To enhance our histogram, we can add descriptive statistics to it. One way to achieve this is by using the abline() function to draw a vertical line representing the mean house price. Let’s add this line to our plot:

abline(v = mean(home_data$price), col='red', lwd = 3)

Step 5: Customizing the Histogram

We can customize various aspects of the histogram to make it more visually appealing and informative. Let’s explore a few customization options:

Changing the Color: We can modify the color of the histogram using the col parameter. For example, let’s change the fill color to blue and the outline color to white:

hist(home_data$price, col = 'blue', border = "white")

Adding Labels and Titles: We can label the axes and provide a title to our histogram using the xlab, ylab, and main parameters. Let’s update our plot with appropriate labels:

hist(home_data$price, xlab = 'Price (USD)', ylab = 'Number of Listings', main = 'Distribution of House Prices')

Step 6: Binning and Breaks

By default, R automatically determines the number of bins for our histogram. However, we can customize the binning using the breaks parameter. This allows us to control the granularity of our histogram. Let’s experiment with different binning strategies:

Specifying the Number of Bins: We can specify the number of bins we want in our histogram. Let’s set it to 100 for a more detailed view:

hist(home_data$price, breaks = 100)

Using Common Calculation Methods: R provides several methods to compute optimal bin breaks. We can specify these methods by name in the breaks parameter. Let’s try the “Sturges,” “Scott,” and “Freedman-Diaconis” methods:

hist(home_data$price, breaks = "Sturges")
hist(home_data$price, breaks = "Scott")
hist(home_data$price, breaks = "Freedman-Diaconis")


In this tutorial, we explored the process of creating histograms in R. We learned how to load data, generate a basic histogram, add descriptive statistics, customize the plot, and adjust the binning. Histograms are invaluable tools for data analysis and visualization, allowing us to uncover insights and patterns in our data.

Remember, R provides a vast ecosystem of libraries and packages, such as ggplot2, that offer even more powerful visualization capabilities. So keep exploring and experimenting with different techniques to enhance your data analysis journey.


Is it possible to plot probability densities instead of counts in an R histogram?

Yes, it is possible to plot probability densities instead of counts in an R histogram. By setting the probability parameter of the hist() function to TRUE, the y-axis of the histogram will be scaled to represent the density. You can then use the density() function in combination with the lines() function to add a probability density line to the plot.

How do I change the color of the histogram in R?

To change the color of the histogram in R, you can use the col parameter of the hist() function. By specifying a color name or code, you can modify the fill color inside the histogram bins. Additionally, you can use the border parameter to change the color of the outline of the histogram bars.

What labels and titles can I add to enhance the clarity of the histogram in R?

You can add labels and titles to enhance the clarity of the histogram in R. The xlab parameter allows you to set the label for the x-axis, the ylab parameter sets the label for the y-axis, and the main parameter sets the title of the plot. By providing meaningful labels and titles, you can provide context and make the histogram more understandable to others.

How can I adjust the binning and breaks in an R histogram?

You can adjust the binning and breaks in an R histogram using the breaks parameter of the hist() function. You have several options:

  • Specify the number of bins by setting breaks to a specific value.
  • Use common calculation methods like “Sturges,” “Scott,” or “Freedman-Diaconis” by passing the respective names to the breaks parameter.
  • Provide a vector of specific breakpoints to use.

By customizing the binning, you can control the granularity and level of detail in your histogram.

Can I set limits on the x-axis or y-axis of the histogram in R?

Yes, you can set limits on the x-axis or y-axis of the histogram in R. To zoom in on a specific range of values, you can use the xlim parameter to set the limits for the x-axis. Similarly, the ylim parameter allows you to set the limits for the y-axis. By adjusting these limits, you can focus on specific parts of the distribution and exclude outliers or extreme values.

Opt out or Contact us anytime. See our Privacy Notice

Follow us on Reddit for more insights and updates.

Comments (0)

Welcome to A*Help comments!

We’re all about debate and discussion at A*Help.

We value the diverse opinions of users, so you may find points of view that you don’t agree with. And that’s cool. However, there are certain things we’re not OK with: attempts to manipulate our data in any way, for example, or the posting of discriminative, offensive, hateful, or disparaging material.

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


Register | Lost your password?