Univariate Graphics in R

This post shows some R basic graphics commands for making six types of plots, scatter plot, histogram, boxplot, dot chart, density plot and empirical CDF. A sample R function is given.


2 minute read

This post shows how to use some of R basic graphics techniques and plotting features to explore a single numeric variable.

Create a Custom Function univPlots

The function univPlots takes a numeric vector and creates 6 plots: scatterplot, dotchart, histogram, density plot, CDF (cumulative distribution function) plot and boxplot.

univPlots <- function (x){
        # set up a matrix layout for multiple plots
        mat <- rbind(1:3, 4:6)
        # 1
        plot(x, main='scatter plot')
        # 2
        hist(x, main="frequency")
        # 3
        boxplot(x, main='boxplot')
        # 4
        dotchart(x, main='dot chart')
        # 5
        x.density <- density(x)
        plot(x.density, main="density")
        polygon(x.density, col="lightblue", border="black")
        # 6
        plot(ecdf(x),main='empirical CDF')
	#reset plot layout

Example 1: random normal distribution

In this example, a sample variable of 100 points is randomly generated from normal distribution with zero mean and unit standard deviation.

# randomly generate 100 points from normal distribution with zero mean and unit sd
x <- rnorm(100, mean=0, sd=1) 
# Call univPlots on x

Example 2: noise-added random Normal distribution

In this example, the previous variable x is distorted by adding random Gaussian noise from \(N(0.5,0.5)\)

# randomly generate 100 points from normal distribution with zero mean and unit sd
noise <- rnorm(100, mean=0.5, sd=0.5)
x.distort <- x + noise


Example 3: random Pareto distribution

Next we plot a random variable of 100 points from a Pareto distribution of location parameter 1 and dispersion parameter 2.

x.pareto <- rpareto(100, m=1, s=2)

Example 4: random Poisson distribution

This example shows a discrete random variable from Poisson distribution whose expected number of occurrences, \(\lambda\), is 2.

(wikipedia) Poisson distribution expresses the probability of a given number of events occurring in a fixed interval of time and/or space if these events occur with a known average rate and independently of the time since the last event.

x.possion <- rpois(10000, lambda=2)