Plot the heatmap of the MAP covariance matrix estimator
or the convergence of the optimization method.
The plot depends on the `type`

argument.

## Usage

```
# S3 method for class 'gips'
plot(
x,
type = NA,
logarithmic_y = TRUE,
logarithmic_x = FALSE,
color = NULL,
title_text = "Convergence plot",
xlabel = NULL,
ylabel = NULL,
show_legend = TRUE,
ylim = NULL,
xlim = NULL,
...
)
```

## Arguments

- x
Object of a

`gips`

class.- type
A character vector of length 1. One of

`c("heatmap", "MLE", "best", "all", "both", "n0", "block_heatmap")`

:`"heatmap"`

,`"MLE"`

- Plots a heatmap of the Maximum Likelihood Estimator of the covariance matrix given the permutation. That is, the`S`

matrix inside the`gips`

object projected on the permutation in the`gips`

object.`"best"`

- Plots the line of the biggest a posteriori found over time.`"all"`

- Plots the line of a posteriori for all visited states.`"both"`

- Plots both lines from "all" and "best".`"n0"`

- Plots the line of`n0`

s that were spotted during optimization (only for "MH" optimization).`"block_heatmap"`

- Plots a heatmap of diagonally block representation of`S`

. Non-block entries (equal to 0) are white for better clarity. For more information, see**Block Decomposition - [1], Theorem 1**section in`vignette("Theory", package = "gips")`

or in its pkgdown page.

The default value is

`NA`

, which will be changed to "heatmap" for non-optimized`gips`

objects and to "both" for optimized ones. Using the default produces a warning. All other arguments are ignored for the`type = "heatmap"`

,`type = "MLE"`

, or`type = "block_heatmap"`

.- logarithmic_y, logarithmic_x
A boolean. Sets the axis of the plot in logarithmic scale.

- color
Vector of colors to be used to plot lines.

- title_text
Text to be in the title of the plot.

- xlabel
Text to be on the bottom of the plot.

- ylabel
Text to be on the left of the plot.

- show_legend
A boolean. Whether or not to show a legend.

- ylim
Limits of the y axis. When

`NULL`

, the minimum, and maximum of the`log_posteriori_of_gips()`

are taken.- xlim
Limits of the x axis. When

`NULL`

, the whole optimization process is shown.- ...
Additional arguments passed to other various elements of the plot.

## Value

When `type`

is one of `"best"`

, `"all"`

, `"both"`

or `"n0"`

,
returns an invisible `NULL`

.
When `type`

is one of `"heatmap"`

, `"MLE"`

or `"block_heatmap"`

,
returns an object of class `ggplot`

.

## See also

`find_MAP()`

- Usually, the`plot.gips()`

is called on the output of`find_MAP()`

.`project_matrix()`

- The function used with`type = "MLE"`

.`gips()`

- The constructor of a`gips`

class. The`gips`

object is used as the`x`

parameter.

## Examples

```
require("MASS") # for mvrnorm()
perm_size <- 6
mu <- runif(6, -10, 10) # Assume we don't know the mean
sigma_matrix <- matrix(
data = c(
1.0, 0.8, 0.6, 0.4, 0.6, 0.8,
0.8, 1.0, 0.8, 0.6, 0.4, 0.6,
0.6, 0.8, 1.0, 0.8, 0.6, 0.4,
0.4, 0.6, 0.8, 1.0, 0.8, 0.6,
0.6, 0.4, 0.6, 0.8, 1.0, 0.8,
0.8, 0.6, 0.4, 0.6, 0.8, 1.0
),
nrow = perm_size, byrow = TRUE
) # sigma_matrix is a matrix invariant under permutation (1,2,3,4,5,6)
number_of_observations <- 13
Z <- MASS::mvrnorm(number_of_observations, mu = mu, Sigma = sigma_matrix)
S <- cov(Z) # Assume we have to estimate the mean
g <- gips(S, number_of_observations)
if (require("graphics")) {
plot(g, type = "MLE")
}
g_map <- find_MAP(g, max_iter = 30, show_progress_bar = FALSE, optimizer = "hill_climbing")
if (require("graphics")) {
plot(g_map, type = "both", logarithmic_x = TRUE)
}
if (require("graphics")) {
plot(g_map, type = "MLE")
}
# Now, the output is (most likely) different because the permutation
# `g_map[[1]]` is (most likely) not an identity permutation.
g_map_MH <- find_MAP(g, max_iter = 30, show_progress_bar = FALSE, optimizer = "MH")
if (require("graphics")) {
plot(g_map_MH, type = "n0")
}
```