Одним из возможных пакетов для интерактивных 3D-графиков является rgl. То, что я хотел бы сделать, - построить 3D-диаграмму рассеяния с цветовым кодированием в соответствии с некоторой факторной переменной. Трехмерная диаграмма рассеяния предназначена для получения нагрузок из анализа plsr.Добавление легенды в plot3d plot
Полученный график выглядит как
В пример данных приведен в таблице:
> 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)
Участок с этикетками по классам:
Пожалуйста, добавьте код и, если возможно, данные (либо реальные или выдуманные) на ваш вопрос таким образом, чтобы сделать [минимальный Repr (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). – SlowLearner
Этот новый код вызывает ошибку: «Ошибка в файлах complete.cases (x, y, z): ...». P –
Исправлена ошибка. – Boddha