Linkspotter is a package of the R software that mainly allows to calculate and visualize using a graph all the bivariate links of a dataset.

Its main features are:

It also offers a customizable user interface, allowing to:

Available link coefficients are:


{r, echo=TRUE, eval=FALSE} install.packages("linkspotter")

current development version from GitHub:

{r, echo=TRUE, eval=FALSE} library(devtools) install_github("sambaala/linkspotter")


Load the package:

{r, echo=TRUE} library(linkspotter)

Have a look at the documentation:

{r, echo=TRUE, eval=FALSE} help(package="linkspotter")

The examples are carried out using ‘iris’ data.

Calculate the MaxNMI between two variables

{r, echo=TRUE} maxNMI(iris$Sepal.Length,iris$Petal.Length)

{r, echo=TRUE} corCouples<-multiBivariateCorrelation(iris) print(corCouples)

Extract a correlation matrix from the correlation dataframe

The Pearson correlation matrix:

{r, echo=TRUE} corMatrixPearson<-corCouplesToMatrix(x1_x2_val = corCouples[,c('X1','X2',"pearson")]) print(corMatrixPearson)

The MaxNMI matrix:

{r, echo=TRUE} corMatrixMaxNMI<-corCouplesToMatrix(x1_x2_val = corCouples[,c('X1','X2',"MaxNMI")]) print(corMatrixMaxNMI)

Clustering of variables using a correlation matrix

{r, echo=TRUE} cl<-clusterVariables(corMatrix = corMatrixMaxNMI) print(cl)

Visualize the graph using Pearson correlation

{r, echo=TRUE} linkspotterGraph(corDF = corCouples, variablesClustering = cl, corMethod = "pearson", minCor = 0.25, smoothEdges = FALSE, dynamicNodes = FALSE)

Visualize the graph using MaxNMI

{r, echo=TRUE} linkspotterGraph(corDF = corCouples, variablesClustering = cl, corMethod = "MaxNMI", minCor = 0.25, smoothEdges = F, dynamicNodes = TRUE)

Launch the customizable user interface

{r, echo=TRUE, eval=FALSE} linkspotterUI(dataset = iris, corDF = corCouples, variablesClustering = cl, appTitle = "Linkspotter example")

Additional features

Complete Linkspotter computation:

{r, echo=TRUE} lsiris<-linkspotterComplete(iris)

Complete Linkspotter computation from an external file:

{r, echo=TRUE, eval=FALSE} lsiris<-linkspotterOnFile("iris.csv") summary(lsiris)

{r, echo=TRUE} summary(lsiris)

Then launch the user interface (linkspotter shiny app) on port 8000 for example:

{r, echo=TRUE, eval=FALSE} lsiris$launchShiny(options=list(port=8000))


{r, echo=TRUE, eval=FALSE} help(linkspotterComplete)

User interface guide

‘Graphs’ tab

The graph

The variables correspond to the nodes and their links correspond to the edges. Node color depends on the clustering. Edge color depends on the correlation direction quantitative couples (blue: positive correlation, red: negative correlation).

First features


General information

It produces the following:

Its type depends on the nature of the corresponding link:

It displays all the measurements calculated for the link corresponding to the clicked edge. When at least one of the variables is qualitative, only the MaxNMI has a value.

Click on a node of the graph

It produces the following:

A summary figure for the corresponding variable (bottom left of the graph)

Its type depends on the nature of the corresponding variable:

A summary table for the corresponding variable (under general information)

Its type depends on the nature of the variable:

‘Tables’ tab

This tab displays 2 tables:

The Correlation coefficient option allows you to choose the coefficient of correlation to be considered among those calculated initially.


Linkspotter uses and combine features coming from several other R packages, namely ‘infotheo’, ‘minerva’, ‘energy’, ‘mclust’, ‘shiny’, ‘shinybusy’, ‘visNetwork’, ‘rAmCharts’ and ‘ggplot2’.