| plot_PCA | R Documentation | 
Quickly vizualise PCA objects and friends and build customs plots using the layers. See examples.
plot_PCA(
  x,
  f = NULL,
  axes = c(1, 2),
  palette = NULL,
  points = TRUE,
  points_transp = 1/4,
  morphospace = TRUE,
  morphospace_position = "range",
  chull = TRUE,
  chullfilled = FALSE,
  labelpoints = FALSE,
  labelgroups = FALSE,
  legend = TRUE,
  title = "",
  center_origin = TRUE,
  zoom = 0.9,
  eigen = TRUE,
  box = TRUE,
  axesnames = TRUE,
  axesvar = TRUE
)
x | 
 a PCA object  | 
f | 
 factor specification to feed fac_dispatcher  | 
axes | 
 
  | 
palette | 
 
  | 
points | 
 
  | 
points_transp | 
 
  | 
morphospace | 
 
  | 
morphospace_position | 
 to feed layer_morphospace_PCA (default: "range")  | 
chull | 
 
  | 
chullfilled | 
 
  | 
labelpoints | 
 
  | 
labelgroups | 
 
  | 
legend | 
 
  | 
title | 
 
  | 
center_origin | 
 
  | 
zoom | 
 
  | 
eigen | 
 
  | 
box | 
 
  | 
axesnames | 
 
  | 
axesvar | 
 
  | 
a plot
This approach will replace plot.PCA (and plot.lda in further versions.
This is part of grindr approach that may be packaged at some point. All comments are welcome.
Other grindr: 
drawers,
layers_morphospace,
layers,
mosaic_engine(),
papers,
pile(),
plot_LDA(),
plot_NMDS()
### First prepare two PCA objects.
# Some outlines with bot
bp <- bot %>% mutate(fake=sample(letters[1:5], 40, replace=TRUE)) %>%
efourier(6) %>% PCA
plot_PCA(bp)
plot_PCA(bp, ~type)
plot_PCA(bp, ~fake)
# Some curves with olea
op <- olea %>%
mutate(s=coo_area(.)) %>%
filter(var != "Cypre") %>%
chop(~view) %>% opoly(5, nb.pts=90) %>%
combine %>% PCA
op$fac$s %<>% as.character() %>% as.numeric()
op %>% plot_PCA(title="hi there!")
### Now we can play with layers
# and for instance build a custom plot
# it should start with plot_PCA()
my_plot <- function(x, ...){
x %>%
    plot_PCA(...) %>%
    layer_points %>%
    layer_ellipsesaxes %>%
    layer_rug
}
# and even continue after this function
op %>% my_plot(~var, axes=c(1, 3)) %>%
    layer_title("hi there!")
# grindr allows (almost nice) tricks like highlighting:
# bp %>% .layerize_PCA(~fake) %>%
#   layer_frame %>% layer_axes() %>%
#   layer_morphospace_PCA() -> x
# highlight <- function(x, ..., col_F="#CCCCCC", col_T="#FC8D62FF"){
#  args <- list(...)
#  x$colors_groups <- c(col_F, col_T)
#  x$colors_rows <- c(col_F, col_T)[(x$f %in% args)+1]
#  x
#  }
# x %>% highlight("a", "b") %>% layer_points()
# You get the idea.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.