Title: | Quantile-Quantile Plot Extensions for 'ggplot2' |
---|---|
Description: | Extensions of 'ggplot2' Q-Q plot functionalities. |
Authors: | Alexandre Almeida [aut], Adam Loy [aut, cre], Heike Hofmann [aut] |
Maintainer: | Adam Loy <[email protected]> |
License: | GPL-3 | file LICENSE |
Version: | 0.0.6 |
Built: | 2024-11-06 03:12:36 UTC |
Source: | https://github.com/aloy/qqplotr |
Draws quantile-quantile confidence bands, with an additional detrend option.
geom_qq_band( mapping = NULL, data = NULL, stat = "qq_band", position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, distribution = "norm", dparams = list(), detrend = FALSE, identity = FALSE, qtype = 7, qprobs = c(0.25, 0.75), bandType = "pointwise", B = 1000, conf = 0.95, mu = NULL, sigma = NULL, ... ) stat_qq_band( mapping = NULL, data = NULL, geom = "qq_band", position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, distribution = "norm", dparams = list(), detrend = FALSE, identity = FALSE, qtype = 7, qprobs = c(0.25, 0.75), bandType = "pointwise", B = 1000, conf = 0.95, mu = NULL, sigma = NULL, ... )
geom_qq_band( mapping = NULL, data = NULL, stat = "qq_band", position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, distribution = "norm", dparams = list(), detrend = FALSE, identity = FALSE, qtype = 7, qprobs = c(0.25, 0.75), bandType = "pointwise", B = 1000, conf = 0.95, mu = NULL, sigma = NULL, ... ) stat_qq_band( mapping = NULL, data = NULL, geom = "qq_band", position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, distribution = "norm", dparams = list(), detrend = FALSE, identity = FALSE, qtype = 7, qprobs = c(0.25, 0.75), bandType = "pointwise", B = 1000, conf = 0.95, mu = NULL, sigma = NULL, ... )
mapping |
Set of aesthetic mappings created by |
data |
The data to be displayed in this layer. There are three options: If A A |
stat |
statistic to use to calculate confidence bands. Should be 'qq_band'. |
position |
Position adjustment, either as a string naming the adjustment
(e.g. |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
distribution |
Character. Theoretical probability distribution function
to use. Do not provide the full distribution function name (e.g.,
|
dparams |
List of additional parameters passed on to the previously
chosen |
detrend |
Logical. Should the plot objects be detrended? If |
identity |
Logical. Should an identity line be used as the reference
line used to construct the confidence bands? If |
qtype |
Integer between 1 and 9. Type of the quantile algorithm to be
used by the |
qprobs |
Numeric vector of length two. Represents the quantiles used by
the |
bandType |
Character. Either |
B |
Integer. If |
conf |
Numerical. Confidence level of the bands. |
mu |
Numerical. Only used if |
sigma |
Numerical. Only used if |
... |
Other arguments passed on to |
geom |
The geometric object to use to display the data, either as a
|
Tail-sensitive confidence bands are only implemented for Normal Q-Q plots. As a future update, we intend to generalize to other distributions.
Bootstrap bands are constructed based on a MLE parametric bootstrap. Hence, it is not possible to construct such bands if the sample and theoretical distributions present mismatching supports.
Thode, H. (2002), Testing for Normality. CRC Press, 1st Ed.
# generate random Normal data set.seed(0) smp <- data.frame(norm = rnorm(100)) # Normal Q-Q plot of Normal data gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_qq_band() + stat_qq_line() + stat_qq_point() gg + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") # Normal Q-Q plot of Normal data with equal local levels (ell) bands bt <- "ell" gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_qq_band(bandType = bt) + stat_qq_line() + stat_qq_point() + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg # Exponential Q-Q plot of mean ozone levels (airquality dataset) di <- "exp" dp <- list(rate = 1) gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_qq_band(distribution = di, dparams = dp) + stat_qq_line(distribution = di, dparams = dp) + stat_qq_point(distribution = di, dparams = dp) + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg # Detrended Exponential Q-Q plot of mean ozone levels di <- "exp" dp <- list(rate = 1) de <- TRUE gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_qq_band(distribution = di, detrend = de) + stat_qq_line(distribution = di, detrend = de) + stat_qq_point(distribution = di, detrend = de) + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg ## Not run: # Normal Q-Q plot of Normal data with bootstrap confidence bands bt <- "boot" gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_qq_band(bandType = bt) + stat_qq_line() + stat_qq_point() + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg # Normal Q-Q plot of Normal data with tail-sensitive confidence bands bt <- "ts" gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_qq_band(bandType = bt) + stat_qq_line() + stat_qq_point() + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg ## End(Not run)
# generate random Normal data set.seed(0) smp <- data.frame(norm = rnorm(100)) # Normal Q-Q plot of Normal data gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_qq_band() + stat_qq_line() + stat_qq_point() gg + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") # Normal Q-Q plot of Normal data with equal local levels (ell) bands bt <- "ell" gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_qq_band(bandType = bt) + stat_qq_line() + stat_qq_point() + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg # Exponential Q-Q plot of mean ozone levels (airquality dataset) di <- "exp" dp <- list(rate = 1) gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_qq_band(distribution = di, dparams = dp) + stat_qq_line(distribution = di, dparams = dp) + stat_qq_point(distribution = di, dparams = dp) + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg # Detrended Exponential Q-Q plot of mean ozone levels di <- "exp" dp <- list(rate = 1) de <- TRUE gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_qq_band(distribution = di, detrend = de) + stat_qq_line(distribution = di, detrend = de) + stat_qq_point(distribution = di, detrend = de) + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg ## Not run: # Normal Q-Q plot of Normal data with bootstrap confidence bands bt <- "boot" gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_qq_band(bandType = bt) + stat_qq_line() + stat_qq_point() + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg # Normal Q-Q plot of Normal data with tail-sensitive confidence bands bt <- "ts" gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_qq_band(bandType = bt) + stat_qq_line() + stat_qq_point() + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg ## End(Not run)
2012 BRFSS sample for the state of Iowa
data(iowa)
data(iowa)
A data frame with 7166 observations on 3 variables:
Gender
Weight in kg
Height in inch
https://www.cdc.gov/brfss/annual_data/annual_2012.html
Men's Olympic Long Jump Qualifiers 2012
data(longjump)
data(longjump)
A data frame with 42 observations on the following 4 variables:
Athlete's rank at the qualifying event
Athlete's name
Athlete's country of origin
Result in meters
https://olympics.com/en/olympic-games/london-2012/results/athletics/long-jump-men
This package extends some ggplot2
functionalities by permitting the
drawing of both quantile-quantile (Q-Q) and probability-probability (P-P)
points, lines, and confidence bands. The functions of this package also allow
the detrend adjustment, proposed by Thode (2002), which helps reduce visual
bias when assessing those plots.
The functions of this package, presented as ggplot2
Stats, are divided
into two groups: Q-Q and P-P related.
Each of the groups is composed of three Stats: point
, line
, and
band
. Those Stats, while independent, complement each other when
plotted together.
Draws probability-probability confidence bands.
stat_pp_band( mapping = NULL, data = NULL, geom = "ribbon", position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, distribution = "norm", dparams = list(), bandType = "boot", B = 1000, conf = 0.95, detrend = FALSE, ... )
stat_pp_band( mapping = NULL, data = NULL, geom = "ribbon", position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, distribution = "norm", dparams = list(), bandType = "boot", B = 1000, conf = 0.95, detrend = FALSE, ... )
mapping |
Set of aesthetic mappings created by |
data |
The data to be displayed in this layer. There are three options: If A A |
geom |
The geometric object to use to display the data, either as a
|
position |
Position adjustment, either as a string naming the adjustment
(e.g. |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
distribution |
Character. Theoretical probability distribution function
to use. Do not provide the full distribution function name (e.g.,
|
dparams |
List of additional parameters passed on to the previously
chosen |
bandType |
Character. Only |
B |
Integer. If |
conf |
Numerical. Confidence level of the bands. |
detrend |
Logical. Should the plot objects be detrended? If |
... |
Other arguments passed on to |
Thode, H. (2002), Testing for Normality. CRC Press, 1st Ed.
# generate random Normal data set.seed(0) smp <- data.frame(norm = rnorm(100), exp = rexp(100)) # Normal P-P plot of Normal data gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_pp_band() + stat_pp_line() + stat_pp_point() + labs(x = "Probability Points", y = "Cumulative Probability") gg # Shifted Normal P-P plot of Normal data dp <- list(mean = 1.5) gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_pp_band(dparams = dp, bandType = "ell") + stat_pp_line() + stat_pp_point(dparams = dp) + labs(x = "Probability Points", y = "Cumulative Probability") gg # Exponential P-P plot of Exponential data di <- "exp" gg <- ggplot(data = smp, mapping = aes(sample = exp)) + stat_pp_band(distribution = di, bandType = "ell") + stat_pp_line() + stat_pp_point(distribution = di) + labs(x = "Probability Points", y = "Cumulative Probability") gg ## Not run: # Normal P-P plot of mean ozone levels (airquality dataset) dp <- list(mean = 38, sd = 27) gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_pp_band(dparams = dp) + stat_pp_line() + stat_pp_point(dparams = dp) + labs(x = "Probability Points", y = "Cumulative Probability") gg ## End(Not run)
# generate random Normal data set.seed(0) smp <- data.frame(norm = rnorm(100), exp = rexp(100)) # Normal P-P plot of Normal data gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_pp_band() + stat_pp_line() + stat_pp_point() + labs(x = "Probability Points", y = "Cumulative Probability") gg # Shifted Normal P-P plot of Normal data dp <- list(mean = 1.5) gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_pp_band(dparams = dp, bandType = "ell") + stat_pp_line() + stat_pp_point(dparams = dp) + labs(x = "Probability Points", y = "Cumulative Probability") gg # Exponential P-P plot of Exponential data di <- "exp" gg <- ggplot(data = smp, mapping = aes(sample = exp)) + stat_pp_band(distribution = di, bandType = "ell") + stat_pp_line() + stat_pp_point(distribution = di) + labs(x = "Probability Points", y = "Cumulative Probability") gg ## Not run: # Normal P-P plot of mean ozone levels (airquality dataset) dp <- list(mean = 38, sd = 27) gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_pp_band(dparams = dp) + stat_pp_line() + stat_pp_point(dparams = dp) + labs(x = "Probability Points", y = "Cumulative Probability") gg ## End(Not run)
Draws a probability-probability line.
stat_pp_line( mapping = NULL, data = NULL, geom = "path", position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, ab = c(0, 1), detrend = FALSE, ... )
stat_pp_line( mapping = NULL, data = NULL, geom = "path", position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, ab = c(0, 1), detrend = FALSE, ... )
mapping |
Set of aesthetic mappings created by |
data |
The data to be displayed in this layer. There are three options: If A A |
geom |
The geometric object to use to display the data, either as a
|
position |
Position adjustment, either as a string naming the adjustment
(e.g. |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
ab |
Numeric vector of length two. The intercept ( |
detrend |
Logical. Should the plot objects be detrended? If |
... |
Other arguments passed on to |
# generate random Normal data set.seed(0) smp <- data.frame(norm = rnorm(100)) # Normal P-P plot of Normal data gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_pp_line() + stat_pp_point() + labs(x = "Probability Points", y = "Cumulative Probability") gg # Shifted Normal P-P plot of Normal data dp <- list(mean = 1.5) gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_pp_line() + stat_pp_point(dparams = dp) + labs(x = "Probability Points", y = "Cumulative Probability") gg # Normal P-P plot of mean ozone levels (airquality dataset) dp <- list(mean = 38, sd = 27) gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_pp_line() + stat_pp_point(dparams = dp) + labs(x = "Probability Points", y = "Cumulative Probability") gg
# generate random Normal data set.seed(0) smp <- data.frame(norm = rnorm(100)) # Normal P-P plot of Normal data gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_pp_line() + stat_pp_point() + labs(x = "Probability Points", y = "Cumulative Probability") gg # Shifted Normal P-P plot of Normal data dp <- list(mean = 1.5) gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_pp_line() + stat_pp_point(dparams = dp) + labs(x = "Probability Points", y = "Cumulative Probability") gg # Normal P-P plot of mean ozone levels (airquality dataset) dp <- list(mean = 38, sd = 27) gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_pp_line() + stat_pp_point(dparams = dp) + labs(x = "Probability Points", y = "Cumulative Probability") gg
Draws probability-probability points.
stat_pp_point( mapping = NULL, data = NULL, geom = "point", position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, distribution = "norm", dparams = list(), detrend = FALSE, down.sample = NULL, ... )
stat_pp_point( mapping = NULL, data = NULL, geom = "point", position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, distribution = "norm", dparams = list(), detrend = FALSE, down.sample = NULL, ... )
mapping |
Set of aesthetic mappings created by |
data |
The data to be displayed in this layer. There are three options: If A A |
geom |
The geometric object to use to display the data, either as a
|
position |
Position adjustment, either as a string naming the adjustment
(e.g. |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
distribution |
Character. Theoretical probability distribution function
to use. Do not provide the full distribution function name (e.g.,
|
dparams |
List of additional parameters passed on to the previously
chosen |
detrend |
Logical. Should the plot objects be detrended? If |
down.sample |
Integer specifying how many points you want to sample
in a reduced sample (i.e., a down sample). The default value is |
... |
Other arguments passed on to |
Thode, H. (2002), Testing for Normality. CRC Press, 1st Ed.
# generate random Normal data set.seed(0) smp <- data.frame(norm = rnorm(100)) # Normal P-P plot of Normal data gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_pp_point() + labs(x = "Probability Points", y = "Cumulative Probability") gg # Shifted Normal P-P plot of Normal data dp <- list(mean = 1.5) gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_pp_point(dparams = dp) + labs(x = "Probability Points", y = "Cumulative Probability") gg # Normal P-P plot of mean ozone levels (airquality dataset) dp <- list(mean = 38, sd = 27) gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_pp_point(dparams = dp) + labs(x = "Probability Points", y = "Cumulative Probability") gg
# generate random Normal data set.seed(0) smp <- data.frame(norm = rnorm(100)) # Normal P-P plot of Normal data gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_pp_point() + labs(x = "Probability Points", y = "Cumulative Probability") gg # Shifted Normal P-P plot of Normal data dp <- list(mean = 1.5) gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_pp_point(dparams = dp) + labs(x = "Probability Points", y = "Cumulative Probability") gg # Normal P-P plot of mean ozone levels (airquality dataset) dp <- list(mean = 38, sd = 27) gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_pp_point(dparams = dp) + labs(x = "Probability Points", y = "Cumulative Probability") gg
Draws a quantile-quantile line, with an additional detrend option.
stat_qq_line( mapping = NULL, data = NULL, geom = "path", position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, distribution = "norm", dparams = list(), detrend = FALSE, identity = FALSE, qtype = 7, qprobs = c(0.25, 0.75), ... )
stat_qq_line( mapping = NULL, data = NULL, geom = "path", position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, distribution = "norm", dparams = list(), detrend = FALSE, identity = FALSE, qtype = 7, qprobs = c(0.25, 0.75), ... )
mapping |
Set of aesthetic mappings created by |
data |
The data to be displayed in this layer. There are three options: If A A |
geom |
The geometric object to use to display the data, either as a
|
position |
Position adjustment, either as a string naming the adjustment
(e.g. |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
distribution |
Character. Theoretical probability distribution function
to use. Do not provide the full distribution function name (e.g.,
|
dparams |
List of additional parameters passed on to the previously
chosen |
detrend |
Logical. Should the plot objects be detrended? If |
identity |
Logical. Should an identity line be used as the reference
line? If |
qtype |
Integer between 1 and 9. Only used if |
qprobs |
Numeric vector of length two. Only used if |
... |
Other arguments passed on to |
Thode, H. (2002), Testing for Normality. CRC Press, 1st Ed.
# generate random Normal data set.seed(0) smp <- data.frame(norm = rnorm(100)) # Normal Q-Q plot of Normal data gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_qq_line() + stat_qq_point() + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg # Exponential Q-Q plot of mean ozone levels (airquality dataset) di <- "exp" dp <- list(rate = 1) gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_qq_line(distribution = di, dparams = dp) + stat_qq_point(distribution = di, dparams = dp) + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg # Detrended Exponential Q-Q plot of mean ozone levels di <- "exp" dp <- list(rate = 1) de <- TRUE gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_qq_line(distribution = di, detrend = de) + stat_qq_point(distribution = di, detrend = de) + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg
# generate random Normal data set.seed(0) smp <- data.frame(norm = rnorm(100)) # Normal Q-Q plot of Normal data gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_qq_line() + stat_qq_point() + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg # Exponential Q-Q plot of mean ozone levels (airquality dataset) di <- "exp" dp <- list(rate = 1) gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_qq_line(distribution = di, dparams = dp) + stat_qq_point(distribution = di, dparams = dp) + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg # Detrended Exponential Q-Q plot of mean ozone levels di <- "exp" dp <- list(rate = 1) de <- TRUE gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_qq_line(distribution = di, detrend = de) + stat_qq_point(distribution = di, detrend = de) + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg
Draws quantile-quantile points, with an additional detrend option.
stat_qq_point( mapping = NULL, data = NULL, geom = "point", position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, distribution = "norm", dparams = list(), detrend = FALSE, identity = FALSE, qtype = 7, qprobs = c(0.25, 0.75), down.sample = NULL, ... )
stat_qq_point( mapping = NULL, data = NULL, geom = "point", position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, distribution = "norm", dparams = list(), detrend = FALSE, identity = FALSE, qtype = 7, qprobs = c(0.25, 0.75), down.sample = NULL, ... )
mapping |
Set of aesthetic mappings created by |
data |
The data to be displayed in this layer. There are three options: If A A |
geom |
The geometric object to use to display the data, either as a
|
position |
Position adjustment, either as a string naming the adjustment
(e.g. |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
distribution |
Character. Theoretical probability distribution function
to use. Do not provide the full distribution function name (e.g.,
|
dparams |
List of additional parameters passed on to the previously
chosen |
detrend |
Logical. Should the plot objects be detrended? If |
identity |
Logical. Only used if |
qtype |
Integer between 1 and 9. Only used if |
qprobs |
Numeric vector of length two. Only used if |
down.sample |
Integer specifying how many points you want to sample
in a reduced sample (i.e., a down sample). The default value is |
... |
Other arguments passed on to |
Thode, H. (2002), Testing for Normality. CRC Press, 1st Ed.
# generate random Normal data set.seed(0) smp <- data.frame(norm = rnorm(100)) # Normal Q-Q plot of simulated Normal data gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_qq_point() + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg # Exponential Q-Q plot of mean ozone levels (airquality dataset) di <- "exp" dp <- list(rate = 1) gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_qq_point(distribution = di, dparams = dp) + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg
# generate random Normal data set.seed(0) smp <- data.frame(norm = rnorm(100)) # Normal Q-Q plot of simulated Normal data gg <- ggplot(data = smp, mapping = aes(sample = norm)) + stat_qq_point() + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg # Exponential Q-Q plot of mean ozone levels (airquality dataset) di <- "exp" dp <- list(rate = 1) gg <- ggplot(data = airquality, mapping = aes(sample = Ozone)) + stat_qq_point(distribution = di, dparams = dp) + labs(x = "Theoretical Quantiles", y = "Sample Quantiles") gg