View source: R/2_ggproto_visualize.r
draw_basis | R Documentation |
Additively draws a basis on a static ggplot.
Not a geom
or proto
. Expects
draw_basis(
basis,
map_to = data.frame(x = c(0, 1), y = c(0, 1)),
position = c("left", "center", "right", "bottomleft", "topright", "off"),
manip_col = "blue",
line_size = 0.6,
text_size = 4,
basis_label = abbreviate(gsub("[^[:alnum:]=]", "", rownames(basis), 3L))
)
basis |
A (p*d) basis to draw. Draws the first two components. If facet is used cbind the facet variable to a specific facet level (2nd example), otherwise the basis prints on all facet levels. |
map_to |
A data.frame to scale the basis to. Defaults to a unitbox; data.frame(x = c(0,1), y = c(0,1)). |
position |
The position, to place the basis axes relative to the centered
data. |
manip_col |
The color to highlight the manipulation variable with. Not applied if the tour isn't a manual tour. Defaults to "blue". |
line_size |
(2D bases only) the thickness of the lines used to make the axes and unit circle. Defaults to 0.6. |
text_size |
Size of the text label of the variables. Defaults to 4. |
basis_label |
The text labels of the data variables. Defaults to the 3 character abbreviation of the rownames of the basis. |
library(spinifex)
library(ggplot2)
dat <- scale_sd(penguins_na.rm[, 1:4])
clas <- penguins_na.rm$species
bas <- basis_pca(dat)
proj <- as.data.frame(dat %*% bas)
ggplot() +
geom_point(aes(PC1, PC2), proj) +
draw_basis(bas, proj, "left") +
coord_fixed()
## Aesthetics and basis on specific facet levels
proj <- cbind(proj, clas = penguins_na.rm$species)
bas <- cbind(as.data.frame(bas), clas = levels(clas)[2])
ggplot() +
facet_wrap(vars(clas)) +
geom_point(aes(PC1, PC2, color = clas, shape = clas), proj) +
draw_basis(bas, proj, "left") +
theme_spinifex()
## To repeat basis in all facet levels don't cbind a facet variable.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.