There are two plotting generics for vinecop_dist
objects.
plot.vinecop_dist
plots one or all trees of a given R-vine copula
model. Edges can be labeled with information about the corresponding
pair-copula. contour.vinecop_dist
produces a matrix of contour plots
(using plot.bicop
).
# S3 method for vinecop_dist
plot(x, tree = 1, var_names = "ignore", edge_labels = NULL, ...)
# S3 method for vinecop
plot(x, tree = 1, var_names = "ignore", edge_labels = NULL, ...)
# S3 method for vinecop_dist
contour(x, tree = "ALL", cex.nums = 1, ...)
# S3 method for vinecop
contour(x, tree = "ALL", cex.nums = 1, ...)
vinecop_dist
object.
"ALL"
or integer vector; specifies which trees are
plotted.
integer; specifies how to make use of variable names:
`"ignore"`` = variable names are ignored,
`"use"`` = variable names are used to annotate vertices,
`"legend"`` = uses numbers in plot and adds a legend for variable names,
`"hide"`` = no numbers or names, just the node.
character; options are:
"family"
= pair-copula family (see [bicop_dist()]
),
`"tau"`` = pair-copula Kendall's tau
`"family_tau"`` = pair-copula family and Kendall's tau,
`"pair"`` = the name of the involved variables.
Unused for plot
and passed to
contour.bicop
for contour
.
numeric; expansion factor for font of the numbers.
If you want the contour boxes to be perfect squares, the plot height should
be 1.25/length(tree)*(d - min(tree))
times the plot width.
The plot()
method returns an object that (among other things) contains the
igraph
representation of the graph; see Examples.
# set up vine copula model
u <- matrix(runif(20 * 10), 20, 10)
vc <- vinecop(u, family = "indep")
# plot
plot(vc, tree = c(1, 2))
plot(vc, edge_labels = "pair")
# extract igraph representation
plt <- plot(vc, edge_labels = "family_tau")
igr_obj <- get("g", plt$plot_env)[[1]]
igr_obj # print object
#> IGRAPH 3eeff18 UN-- 10 9 --
#> + attr: name (v/c), name (e/c)
#> + edges from 3eeff18 (vertex names):
#> [1] 7--8 9--3 1--3 3--6 6--8 4--2 5--8 2--10 8--10
igraph::E(igr_obj)$name # extract edge labels
#> [1] "indep(0)" "indep(0)" "indep(0)" "indep(0)" "indep(0)" "indep(0)" "indep(0)"
#> [8] "indep(0)" "indep(0)"
# set up another vine copula model
pcs <- lapply(1:3, function(j) # pair-copulas in tree j
lapply(runif(4 - j), function(cor) bicop_dist("gaussian", 0, cor)))
mat <- rvine_matrix_sim(4)
vc <- vinecop_dist(pcs, mat)
# contour plot
contour(vc)