adegraphics
packageThe adegraphics
package (Siberchicot et al. 2017) is a complete reimplementation of the graphical functionalities of the ade4
package (Dray and Dufour 2007). The package has been initially designed to improve the representation of the outputs of multivariate analyses performed with ade4
but as its graphical functionalities are very general, they can be used for other purposes.
The adegraphics
package provides a flexible environment to produce, edit and manipulate graphs. We adopted an object oriented approach (a graph is an object) using S4
classes and methods and used the visualization system provided by the lattice
(Sarkar 2008) and grid
(Murrell 2005) packages. In adegraphics
, graphs are R objects that can be edited, stored, combined, saved, removed, etc.
Note that we tried to facilitate the handling of adegraphics
by ade4
users. Hence, the name of functions and parameters has been preserved in many cases. The main changes are listed in the appendix of this vignette so that it should be quite easy to use adegraphics
. However, several new functionalities (graphical parameters, creation and manipulation of graphical objects, etc.) are now available and detailed in this vignette.
The adelist mailing list can be used to send questions and/or comments on adegraphics
(see https://listes.univ-lyon1.fr/sympa/info/adelist)
In adegraphics
, a user-level function produces a plot that is stored (and returned) as an object. The class architecture of the objects created by adegraphics
functions is described in Figure 1.
This class management highlights a hierarchy with two parent classes:
ADEg
for simple graphs. It contains the display of a single data set using only one kind of representation (e.g., arrows, points, lines, etc.)
ADEgS
for multiple graphs. It contains a collection of at least two simple graphs (ADEg
, trellis
or ADEgS
)
The ADEg
class has five child classes which are also subdivided in several child classes. Each of these five child classes is dedicated for a particular graphical data representation:
ADEg.S1
: unidimensional graph of a numeric score
ADEg.S2
: bidimensional graph of xy coordinates (matrix
or data.frame
object)
ADEg.C1
: bidimensional graph of a numeric score (bar chart or curve)
ADEg.T
: heat map-like representation of a data table (matrix
, data.frame
, dist
or table
object)
ADEg.Tr
: ternary plot of xyz coordinates (matrix
or data.frame
object)
The ADEg
class and its five child classes are virtual: it is not allowed to create object belonging to these classes. Users can only create objects belonging to child classes by calls to user functions (see the User functions section).
ADEg
object)In the adegraphics
package, a graph is created by a call to a user function and stored as an R object. These functions allow to display the raw data but also the outputs of a multivariate analysis. The following sections describe the different graphical functions available in the package.
Several user functions are available to create a simple graph (stored as an ADEg
object in R). Each function creates an object of a given class (see Figure 1). Table 1 lists the different functions, their corresponding classes and a short description. The ade4
users would not be lost: many functions have kept their names in adegraphics
. The main changes are listed in Table 2.
Table 1: Graphical functions available in adegraphics
Function | Class of the returned object | Description |
---|---|---|
s1d.barchart |
C1.barchart |
1-D plot of a numeric score by bars |
s1d.curve |
C1.curve |
1-D plot of a numeric score linked by curves |
s1d.curves |
C1.curves |
1-D plot of multiple scores linked by curves |
s1d.density |
C1.density |
1-D plot of a numeric score by density curves |
s1d.dotplot |
C1.dotplot |
1-D plot of a numeric score by dots |
s1d.gauss |
C1.gauss |
1-D plot of a numeric score by Gaussian curves |
s1d.hist |
C1.hist |
1-D plot of a numeric score by bars |
s1d.interval |
C1.interval |
1-D plot of the interval between two numeric scores |
s1d.boxplot |
S1.boxplot |
1-D box plot of a numeric score partitioned in classes |
s1d.class |
S1.class |
1-D plot of a numeric score partitioned in classes |
s1d.distri |
S1.distri |
1-D plot of a numeric score by means/tandard deviations computed using an external table of weights |
s1d.label |
S1.label |
1-D plot of a numeric score with labels |
s1d.match |
S1.match |
1-D plot of the matching between two numeric scores |
s.arrow |
S2.arrow |
2-D scatter plot with arrows |
s.class |
S2.class |
2-D scatter plot with a partition in classes |
s.corcircle |
S2.corcircle |
Correlation circle |
s.density |
S2.density |
2-D scatter plot with kernel density estimation |
s.distri |
S2.distri |
2-D scatter plot with means/standard deviations computed using an external table of weights |
s.image |
S2.image |
2-D scatter plot with loess estimation of an additional numeric score |
s.label |
S2.label |
2-D scatter plot with labels |
s.logo |
S2.logo |
2-D scatter plot with logos (pixmap objects) |
s.match |
S2.match |
2-D scatter plot of the matching between two sets of coordinates |
s.Spatial |
S2.label |
Mapping of a Spatial* object |
s.traject |
S2.traject |
2-D scatter plot with trajectories |
s.value |
S2.value |
2-D scatter plot with proportional symbols |
table.image |
T.image |
Heat map-like representation with colored cells |
table.value |
T.value or T.cont |
Heat map-like representation with proportional symbols |
triangle.class |
Tr.class |
Ternary plot with a partition in classes |
triangle.label |
Tr.label |
Ternary plot with labels |
triangle.match |
Tr.match |
Ternary plot of the matching between two sets of coordinates |
triangle.traject |
Tr.match |
Ternary plot with trajectories |
Table 2: Changes in functions names between ade4
and adegraphics
Function in ade4 |
Equivalence in adegraphics |
---|---|
table.cont , table.dist , table.value |
table.value 1 |
table.paint |
table.image |
sco.boxplot |
s1d.boxplot |
sco.class |
s1d.class |
sco.distri |
s1d.distri |
sco.gauss |
s1d.gauss |
sco.label |
s1d.label |
sco.match |
s1d.match |
sco.quant |
no equivalence |
s.chull |
s.class 2 |
s.kde2d |
s.density |
s.match.class |
superposition of s.match and s.class |
triangle.biplot |
triangle.match |
triangle.plot |
triangle.label |
s.multinom |
triangle.multinom |
The list of arguments of a function are given by the args
function.
library(ade4)
library(adegraphics)
## The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
## which was just loaded, will retire in October 2023.
## Please refer to R-spatial evolution reports for details, especially
## https://r-spatial.org/r/2023/05/15/evolution4.html.
## It may be desirable to make the sf package available;
## package maintainers should consider adding sf to Suggests:.
## The sp package is now running under evolution status 2
## (status 2 uses the sf package in place of rgdal)
## Registered S3 methods overwritten by 'adegraphics':
## method from
## biplot.dudi ade4
## kplot.foucart ade4
## kplot.mcoa ade4
## kplot.mfa ade4
## kplot.pta ade4
## kplot.sepan ade4
## kplot.statis ade4
## scatter.coa ade4
## scatter.dudi ade4
## scatter.nipals ade4
## scatter.pco ade4
## score.acm ade4
## score.mix ade4
## score.pca ade4
## screeplot.dudi ade4
##
## Attachement du package : 'adegraphics'
## Les objets suivants sont masqués depuis 'package:ade4':
##
## kplotsepan.coa, s.arrow, s.class, s.corcircle, s.distri, s.image,
## s.label, s.logo, s.match, s.traject, s.value, table.value,
## triangle.class
args(s.label)
## function (dfxy, labels = rownames(dfxy), xax = 1, yax = 2, facets = NULL,
## plot = TRUE, storeData = TRUE, add = FALSE, pos = -1, ...)
## NULL
Some arguments are very general and present in all user functions:
plot
: a logical value indicating if the graph should be displayed
storeData
: a logical value indicating if the data should be stored in the returned object. If FALSE
, only the names of the data are stored. This allows to reduce the size of the returned object but it implies that the data should not be modified in the environment to plot again the graph.
add
: a logical value indicating if the graph should be superposed on the graph already displayed in the current device (it replaces the argument add.plot
in ade4
).
pos
: an integer indicating the position of the environment where the data are stored, relative to the environment where the function is called. Useful only if storeData
is FALSE
.
…
: additional graphical parameters (see below)
Some other arguments influence the graphical outputs and t