# Panel function for correlation in scatter plot matrix

This function adds a panel routine to the `pairs()`

command. The panel can be the upper or the lower panel. The result is a text entry that shows the correlation coefficient, p-value and number of observations. You can alter the text size and the method of correlation used.

## Keywords

Scatter plot matrix, pairs plot, correlation, coefficient, panel function, graphics

## Download

You can download the function code using this link (click to view the text, right-click to select download): <Pairs-panel-cor.R>. The file is an R source code file, which is readable by any text editor.

To get the function working for your copy of R you’ll need to use the source() function. Put the Pairs-panel-cor.R.R file in your working directory and type:

source("Pairs-panel-cor.R")

Alternatively, you can use:

source(file.choose())

This will open a file browser so you can find and select the file. If you are using RStudio you can use menu: *Code > Source File..*.

## Description

A scatter plot matrix is a graphic that displays scatter plots of all the pairwise combinations of variables. Panel functions can be used to draw into the upper or lower “triangles”. This panel function allows you to display text, giving some information about the pairwise correlation for each pair of variables. You can alter the method of correlation and the size of the displayed text.

## Usage

panel.cor(x, y, cex.cor = 0.8, method = "pearson", ...)

## Arguments

There are two main arguments you can alter:

`x, y` |
The variables, these are taken from `pairs()` and cannot be altered. |

`cex.cor` |
The expansion factor for the text size, default = `0.8` . |

`method` |
The method for the correlation: see `cor()` . The options are: `"pearson"` (default), `"spearman"` and `"Kendall"` . |

`...` |
Other graphical parameters can be passed to `pairs()` . |

## Value

The result of the panel function is only applied when used as an argument to `pairs()`

. The appropriate panels are drawn with text (centered) displaying the correlation coefficient, the p-value and the number of observations.

## Notes

The panel function will generate warning messages, because you are trying to pass parameters to `pairs()`

that are not “regular” graphical arguments. These warnings can be safely ignored.

## See Also

`pairs()`

for plotting of scatter plot matrices, `panel.smooth()`

as an example of a built-in panel function. See `cor()`

for details about correlation.

## Code

Here is the code for the function:

# Panel function for pairs() # Mark Gardener 2020 # www.dataanalytics.org.uk panel.cor <- function(x, y, cex.cor = 0.8, method = "pearson", ...) { options(warn = -1) # Turn of warnings (e.g. tied ranks) usr <- par("usr"); on.exit(par(usr)) # Saves current "usr" and resets on exit par(usr = c(0, 1, 0, 1)) # Set plot size to 1 x 1 r <- cor(x, y, method = method, use = "pair") # correlation coef p <- cor.test(x, y, method = method)$p.val # p-value n <- sum(complete.cases(x, y)) # How many data pairs txt <- format(r, digits = 3) # Format r-value txt1 <- format(p, digits = 3) # Format p-value txt2 <- paste0("r= ", txt, '\n', "p= ", txt1, '\n', 'n= ', n) # Make panel text text(0.5, 0.5, txt2, cex = cex.cor, ...) # Place panel text options(warn = 0) # Reset warning } ## END

## Examples

Here are some examples of the code in operation:

# Default method ("pearson") pairs(trees, lower.panel = panel.cor, cex.cor = 2)

# Spearman correlation with separate panel for upper # and additional graphical parameters pairs(airquality[, 1:4], upper.panel = panel.smooth, lower.panel = panel.cor, method = "spearman", cex.cor = 1, col = "blue", pch = 21, bg = "gray80")

## Links

Data examples:

- Statistics for Ecologists: support files and example data.
- Statistics for Ecologists: exercises and notes.
- Community Ecology: support files and notes.
- Managing Data using Excel: support files and example data.

Custom R functions:

- Community Ecology: custom R functions.

General data science articles:

- DataAnalytics Knowledge Base. For general topics and articles about data science, including Learning R: the statistical programming language
- DataAnalytics Tips and Tricks. for articles covering a range of topics in data science, including Using R, Using Excel, quantitative data analysis, predictive data analysis and a lot more besides.

See our Publications Page for an overview of our book on Ecology, Environmental Science and R: the statistical programming language.