Contents

How to Plot Histogram from a Vector in ggplot2

You can use the geom_histogram() function in ggplot2 to create a histogram in R.

Generally, the ggplot() accepts the data frame to create the histogram. But in this article, we will cover how to use the numeric vector to create a histogram using ggplot() and geom_histogram().

The following examples demonstrate how to use numeric vectors to create a histogram in ggplot2.

1 Convert vector to data frame

Create a random numeric vector using the built-in rnorm() function,

set.seed(1234)
num = rnorm(100, mean = 3, sd = 1)

Create a histogram using ggplot() and geom_histogram(),

# load package
library(ggplot2)

# create histogram using ggplot
ggplot(data.frame(num), aes(num)) + geom_histogram()

/images/ggplot2/hist_from_vector.png
Creatte histogram from vector in ggplot2

In this example, we have converted a numeric vector into a data frame using data.frame() function and passed it to the ggplot().

2 Construct aesthetic mappings

You can also construct aesthetic mappings (aes()) as individual layer for the vector input instead of passing it in a ggplot() function.

Create a random numeric vector using the built-in rnorm() function,

set.seed(1234)
num = rnorm(100, mean = 3, sd = 1)

Create a histogram using aes() as individual layer for the vector input,

# load package
library(ggplot2)

# create histogram using ggplot
ggplot() + aes(num) + geom_histogram()

/images/ggplot2/hist_from_vector.png
Creatte histogram from vector in ggplot2 with aesthetic mappings

In this example, we have used the aes() function as an individual layer for the vector input to create a histogram using ggplot().

3 Use aesthetic mappings in geom_histogram()

You can also construct aesthetic mappings (aes()) inside geom_histogram() for the vector input for a creating histogram using ggplot() function.

Create a random numeric vector using the built-in rnorm() function,

set.seed(1234)
num = rnorm(100, mean = 3, sd = 1)

Create a histogram using aes() within geom_histogram() for the vector input,

# load package
library(ggplot2)

# create histogram using ggplot
ggplot() + geom_histogram(aes(num))

/images/ggplot2/hist_from_vector.png
Creatte histogram from vector in ggplot2 with aesthetic mappings inside geom_histogram()

In this example, we have used the aes() function inside geom_histogram() for the vector input to create a histogram using ggplot().