Добавление легенды в сюжет scatter3d

Одним из возможных пакетов для интерактивных 3D-сюжетов является rgl. Я хотел бы построить трехмерную диаграмму рассеяния с цветовым кодированием в соответствии с некоторой переменной фактора. Трехмерная диаграмма рассеяния предназначена для результирующих нагрузок из анализа PLSR

Получившийся сюжет выглядит так

пример данных приведено в таблице:

> loadings

      |      Comp 1         |        Comp 2            |    Comp 3           | Class
-------------------------------------------------------------------------------------------                    
TEMP  | -0.0607044182964255 | "0.0437618450165671"     |"0.045124991801441"  | "global"  
MW    | "-0.13414890573833" |   "-0.0970537799069731"  |0.263043734662182"   | "local" 
DM    |"-0.183751529577861" |  "-0.102703237685933"    |"0.0640549385564205" | "global" 
CHG   |"-0.0558781715833019"| "0.125155347350922"      |"-0.119258450107321" | "local"

или может быть сгенерировано:

loadings <- data.frame(Comp1 = c(1.2, 3.4, 5.6, 13.1), Comp2 = c(4.3, 1.2, 7.7, 9.8),
                       Comp3 = c(1.2,6.9,15.6,15.0), 
                       row.names = c("TEMP", "MW", "DM", "CHG"), 
                       Class = c("global", "local", "global", "local"))
scatter3d(x=loadings[[1]], y=loadings[[2]], z=loadings[[3]], 
          point.col = as.numeric(as.factor(loadings[,4])), size = 10)

Полученный сюжет имеет тот же стиль, но намного проще, поскольку существует только два уровня переменной «Класс»: «глобальный» и «локальный».

Вопрос: Есть ли возможность добавить легенду в rgl, или, возможно, к сюжету можно добавить независимую легенду? Заранее спасибо за помощь!

Ответ:

scatter3d(x=loadings[[1]], y=loadings[[2]], z=loadings[[3]], 
          point.col = as.numeric(as.factor(loadings[,4])), size = 10, type = 's')
text3d(x=1.1, y=c(.9,1), z=1.1,levels(loadings[[4]]),col="black")
points3d(x=1.2,y=c(.9,1),z=1.1, col=as.numeric(as.factor(loadings[,4])), size=5)

Сюжет с метками по классам:

Ответы на вопрос(1)

Ваш ответ на вопрос