[R] second legend in biplot

PIKAL Petr petr@p|k@| @end|ng |rom prechez@@cz
Mon Dec 7 08:22:49 CET 2020


Dear all

I try to make fviz_pca_biplot with 2 (or more) legends. Below is data and
the code, which gives one legend (colour) for coating variable and correctly
shows triangles and circles for size variable. But this is not shown in the
legend. Hopefully somebody could help.

And before you ask, I tried to contact maintainer about a week ago but did
not get response, therefore I try to post again here. 

Even an answer that current version of fviz_pca_biplot does not support 2
legends with different point shapes is OK as it will send me either to adapt
source code or to stop trying impossible.

Best regards
Petr

library(factoextra)
library(FactoMineR)

fit <- PCA(temp, quali.sup=c(9,10))
fviz_pca_biplot(fit, col.ind = temp$coating, repel=T, col.var = "black",
palette = "lancet", invisible="quali", pointsize=5, pointshape=temp$size,
legend.title = list(col = "Coating", shape="Size"), xlim=c(-6,6),
title="Instillation results")

temp <- structure(list(leukocyte28 = c(96875L, 73438L, 68229L, 94479L, 
76563L, 141667L, 111042L, 93333L, 132083L, 103542L, 61667L, 77708L
), macrophage28 = c(60.29, 99.13, 97.04, 98.54, 98.46, 75.2, 
89.71, 98, 82, 98.83, 99.08, 98.54), pmn28 = c(38.58, 0.58, 2.71, 
0.92, 1, 24.25, 9.29, 1.5, 15.08, 0.92, 0.67, 1), lymphocyte28 = c(1.13, 
0.29, 0.25, 0.54, 0.54, 0.55, 1, 0.5, 2.92, 0.25, 0.25, 0.46), 
    leukocyte3 = c(186042L, 111250L, 114375L, 111146L, 98854L, 
    156250L, 250625L, 183125L, 202917L, 161875L, 184792L, 128333L
    ), macrophage3 = c(53.88, 95.96, 98.29, 98.92, 98.92, 78.3, 
    82.33, 97.83, 84.79, 97.25, 97.75, 98.46), pmn3 = c(44.75, 
    3.46, 1.29, 0.67, 0.71, 20.4, 16.67, 1.92, 14.04, 1.92, 1.67, 
    1.21), lymphocyte3 = c(1.38, 0.58, 0.42, 0.42, 0.38, 1.3, 
    1, 0.25, 1.17, 0.83, 0.58, 0.33), coating = structure(c(3L, 
    3L, 3L, 1L, 7L, 1L, 2L, 5L, 4L, 6L, 3L, 3L), .Label = c("alumina", 
    "both", "none", "phosphate", "silica", "tungsten", "zirconia"
    ), class = "factor"), size = structure(c(1L, 1L, 2L, 2L, 
    2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L), .Label = c("nano", "pigmentary"
    ), class = "factor")), class = "data.frame", row.names = c(NA, 
12L))



More information about the R-help mailing list