Estou tentando obter o 3D scatter interativo em R 3.3.2 seguindo as instruções aqui e estudando aqui .
Eu tento usar cores dinâmicas por RColorBrewer
com qualquer pacote de plotagem de cores 3D, aqui escolhido scatter3d
.
Eu não encontrei nenhum pacote chamado scatter3d
, então não tenho certeza de onde a função é precisamente.
Recebo o seguinte aviso como root por install.packages('scatter3d')
. Eu já fiz install.packages('rgl')
package ‘scatter3d’ is not available (for R version 3.3.2)
Exemplo de pseudocódigo [não necessário para o caso]
Eu mostro o seguinte código porque não sei como você pode obter scatter3d
no Linux
## Startup
# Mx <- [choose any matrix here]
N <- length(Mx)
perplex <- 0
library('Rtsne')
# https://www.codeproject.com/Tips/788739/Visualization-of-High-Dimensional-Data-using-t-SNE
# https://cran.r-project.org/web/packages/Rtsne/Rtsne.pdf
rtsne_out <- Rtsne(as.matrix(Mx), perplexity = perplex,
dims=3,
pca=TRUE,
check_duplicates=FALSE
)
## Fails because missing package scatter3d
library('RColorBrewer')
library('rgl') # scatter3d
colors <- brewer.pal(n=N, name="Dark2")
# TODO scatter3d not available in R 3.3.2
scatter3d(x=rtsne_out$Y[,1],y=rtsne_out$Y[,2],z=rtsne_out$Y[,3],
surface=FALSE, grid = FALSE, ellipsoid = TRUE,
surface.col = colors)
Testando a resposta de Rodrigo
Pontos bem-sucedidos de Rodrigo: Do install.packages('car')
, que é um pacote de regressão, não um pacote de dados.
Eu chamo a seguinte função dentro de uma função. Depois de terminar a função, o scatter3d
interativo se fecha, o que é problemático, pois não posso mais usar a janela interativa, já que o tempo de execução é curto
scatter3d(x=rtsne_out$Y[,1],y=rtsne_out$Y[,2],z=rtsne_out$Y[,3],
surface=FALSE, grid = FALSE, ellipsoid = TRUE,
surface.col = colors)
Eu tento retornar o objeto de visualização dentro da função sem sucesso por
result <- scatter3d(...)
return(result)
A interrupção do pressionamento de tecla não ajuda na função e nem fora da função; a execução do script continua e a visualização termina sem deixar a janela aberta
result
cat ("Press [enter] to continue") # http://stackoverflow.com/a/18746519/54964
line <- readline()
#readline(prompt="Press [enter] to continue") # http://stackoverflow.com/a/18746519/54964
Fazer par(ask=TRUE) #http://r.789695.n4.nabble.com/Pause-on-graphics-td845261.html
antes de scatter3d
não ajuda em nada.
OS: Debian 8.5
R: 3.3.2