代码之家  ›  专栏  ›  技术社区  ›  Jellz

从R包中指定fviz_pca中的颜色和形状图例

  •  0
  • Jellz  · 技术社区  · 3 年前

    例如,当有两个组变量时,下面的 iris 数据集(添加因子变量) 地点 ):

    SepalLengthCm   SepalWidthCm    PetalLengthCm   PetalWidthCm    Species Site
    5.1 3.5 1.4 0.2 Iris-setosa A
    4.9 3   1.4 0.2 Iris-setosa A
    4.7 3.2 1.3 0.2 Iris-setosa A
    4.6 3.1 1.5 0.2 Iris-setosa A
    5   3.6 1.4 0.2 Iris-setosa A
    5.4 3.9 1.7 0.4 Iris-setosa A
    5.2 3.4 1.4 0.2 Iris-setosa A
    4.7 3.2 1.6 0.2 Iris-setosa A
    4.8 3.1 1.6 0.2 Iris-setosa A
    7   3.2 4.7 1.4 Iris-versicolor A
    6.4 3.2 4.5 1.5 Iris-versicolor A
    6.9 3.1 4.9 1.5 Iris-versicolor A
    5.5 2.3 4   1.3 Iris-versicolor A
    6.5 2.8 4.6 1.5 Iris-versicolor A
    5.7 2.8 4.5 1.3 Iris-versicolor B
    6.3 3.3 4.7 1.6 Iris-versicolor B
    4.9 2.4 3.3 1   Iris-versicolor B
    6.6 2.9 4.6 1.3 Iris-versicolor B
    5.2 2.7 3.9 1.4 Iris-versicolor B
    6.3 3.3 6   2.5 Iris-virginica  B
    5.8 2.7 5.1 1.9 Iris-virginica  B
    7.1 3   5.9 2.1 Iris-virginica  B
    6.3 2.9 5.6 1.8 Iris-virginica  B
    6.5 3   5.8 2.2 Iris-virginica  B
    7.6 3   6.6 2.1 Iris-virginica  B
    4.9 2.5 4.5 1.7 Iris-virginica  B
    7.3 2.9 6.3 1.8 Iris-virginica  B
    6.7 2.5 5.8 1.8 Iris-virginica  B
    7.2 3.6 6.1 2.5 Iris-virginica  B
    


    1) 将点颜色映射到Iris$物种,以及 将点形状映射到Iris$站点 ;

    我正在使用的代码:

    library(factoextra)
    
    data(Iris)
    res.pca <- PCA(Iris[,1:4], graph = F)
    
    fviz_pca_biplot(res.pca,
                    #individuals
                    geom.ind="point",
                    col.ind=Iris$Species,
                    pointshape=Iris$Site,
                    
                    #variables
                    col.var="steelblue")
    

    enter image description here 当我使用 pointshape=Iris$Site

    错误:美学长度必须为1或与数据(3):形状相同


    2) 如何编辑图例标题?

    0 回复  |  直到 3 年前
        1
  •  1
  •   Kra.P    3 年前

    因为 ggbiplot 基于 ggplot() geom_point

    iris.pca <- PCA(iris[,1:4], graph = F)
    fviz_pca_biplot(iris.pca,obs.scale = 1, var.scale = 1, alpha=0, col.var="steelblue") + 
      geom_point(aes(shape = factor(iris$Site), colour = factor(iris$Species))) +
      guides(shape = guide_legend(title = "shape"),
             colour = guide_legend(title = "color"))
    

    enter image description here