ggtrendline {ggtrendline}R Documentation

Add Trendline and Confidence Interval to 'ggplot'

Description

Add trendline and confidence interval of linear or nonlinear regression model to 'ggplot', by using different models built in the 'ggtrendline()' function.
The function includes the following models:
"line2P" (formula as: y=a*x+b),
"line3P" (y=a*x^2+b*x+c),
"log2P" (y=a*ln(x)+b),
"exp2P" (y=a*exp(b*x)),
"exp3P" (y=a*exp(b*x)+c),
"power2P" (y=a*x^b),
and "power3P" (y=a*x^b+c).

Usage

ggtrendline(
  x,
  y,
  model = "line2P",
  linecolor = "black",
  linetype = 1,
  linewidth = 0.6,
  CI.level = 0.95,
  CI.fill = "grey60",
  CI.alpha = 0.3,
  CI.color = "black",
  CI.lty = 2,
  CI.lwd = 0.5,
  summary = TRUE,
  show.eq = TRUE,
  yhat = FALSE,
  eq.x = NULL,
  eq.y = NULL,
  show.Rsquare = TRUE,
  show.pvalue = TRUE,
  Pvalue.corrected = TRUE,
  Rname = 0,
  Pname = 0,
  rrp.x = NULL,
  rrp.y = NULL,
  text.col = "black",
  eDigit = 3,
  eSize = 3,
  xlab = NULL,
  ylab = NULL
)

Arguments

x, y

the x and y arguments provide the x and y coordinates for the 'ggplot'. Any reasonable way of defining the coordinates is acceptable.

model

select which model to fit. Default is "line2P". The "model" should be one of c("line2P", "line3P", "log2P", "exp2P", "exp3P", "power2P", "power3P"), their formulas are as follows:
"line2P": y=a*x+b
"line3P": y=a*x^2+b*x+c
"log2P": y=a*ln(x)+b
"exp2P": y=a*exp(b*x)
"exp3P": y=a*exp(b*x)+c
"power2P": y=a*x^b
"power3P": y=a*x^b+c

linecolor

the color of regression line. Default is "black".

linetype

the type of regression line. Default is 1. Notes: linetype can be specified using either text c("blank","solid","dashed","dotted","dotdash","longdash","twodash") or number c(0, 1, 2, 3, 4, 5, 6).

linewidth

the width of regression line. Default is 0.6.

CI.level

level of confidence interval to use. Default is 0.95.

CI.fill

the color for filling the confidence interval. Default is "grey60".

CI.alpha

alpha value of filling color of confidence interval. Default is 0.3.

CI.color

line color of confidence interval. Default is "black".

CI.lty

line type of confidence interval. Default is 2.

CI.lwd

line width of confidence interval. Default is 0.5.

summary

summarizing the model fits. Default is TRUE.

show.eq

whether to show the regression equation, the value is one of c("TRUE", "FALSE").

yhat

whether to add a hat symbol (^) on the top of "y" in equation. Default is FALSE.

eq.x, eq.y

equation position.

show.Rsquare

whether to show the R-square, the value is one of c("TRUE", "FALSE").

show.pvalue

whether to show the P-value, the value is one of c("TRUE", "FALSE").

Pvalue.corrected

if P-value corrected or not, the value is one of c("TRUE", "FALSE").

Rname

to specify the character of R-square, the value is one of c(0, 1), corresponding to c(r^2, R^2).

Pname

to specify the character of P-value, the value is one of c(0, 1), corresponding to c(p, P).

rrp.x, rrp.y

the position for R square and P value.

text.col

the color used for the equation text.

eDigit

the numbers of digits for R square and P value. Default is 3.

eSize

font size of R square and P value. Default is 3.

xlab, ylab

labels of x- and y-axis.

Details

The values of each parameter of regression model can be found by typing trendline_sum function in this package.

The linear models (line2P, line3P, log2P) in this package are estimated by lm function, while the nonlinear models (exp2P, exp3P, power2P, power3P) are estimated by nls function (i.e., least-squares method).

Value

No return value (called for side effects).

References

Ritz C., and Streibig J. C. (2007) Nonlinear Regression with R. Springer.

Greenwell B. M., and Schubert Kabban C. M. (2014) investr: An R Package for Inverse Estimation. The R Journal, 6(1), 90-100.

See Also

ggtrendline, stat_eq, stat_rrp, trendline_sum, nls, selfStart

Examples

# library(ggplot2)
library(ggtrendline)
x <- c(1, 3, 6, 9,  13,   17)
y <- c(5, 8, 11, 13, 13.2, 13.5)

ggtrendline(x, y, model = "line2P")  # default
ggtrendline(x, y, model = "log2P", CI.fill = NA)  # CI lines only, without CI filling

ggtrendline(x, y, model = "exp2P", linecolor = "blue", linetype = 1, linewidth = 1) # set line
ggtrendline(x, y, model = "exp3P", CI.level = 0.99,
            CI.fill = "red", CI.alpha = 0.1, CI.color = NA, CI.lty = 2, CI.lwd = 1.5) # set CI


[Package ggtrendline version 1.0.3 Index]