Jednym z możliwych pakietów dla interaktywnych wykresów 3D jest rgl. Chciałbym zbudować trójwymiarowy wykres rozrzutu z kodowaniem kolorami według pewnej zmiennej czynnikowej. Trójwymiarowy wykres rozrzutu dla wynikowych obciążeń z analizy plsr.Dodawanie legendy do wykresu scatter3d
Uzyskany wykres wygląda
W przykład dane są podane w tabeli:
> 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"
lub mogą być wytwarzane:
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)
uzyskanego wykresu ma sa mi styl, ale jest znacznie prostsze, ponieważ istnieją tylko dwa poziomy zmiennej „klasa”: „globalne” i „lokalne”
Pytanie jest: Czy jest jakakolwiek możliwość, aby dodać legendę wewnątrz RGL a może do tej fabuły można dołączyć jakąś niezależną legendę? Z góry dziękujemy za pomoc!
Odpowiedź brzmi:
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)
Działka z etykiet według klas:
Należy dodać kod i jeśli to możliwe dane (rzeczywistej lub gotowych) z pytaniem, tak aby dokonać [minimalna repr nieprzyzwoity przykład] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). – SlowLearner
Ten nowy kod zgłasza błąd: "Błąd w complete.cases (x, y, z): ...". P –
Naprawiono ten błąd. – Boddha