Como instalar e usar o scatter3d sem pausar em R 3.3.2?

1

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

    
por Léo Léopold Hertz 준영 30.12.2016 / 12:42

1 resposta

1

Um exemplo simples, usando a biblioteca rgl .

install.packages('rgl',depend=T)
library(rgl)
ce <- read.csv('_CE3D.txt',sep='\t',header=T)
cd <- read.csv('_CD3D.txt',sep='\t',header=T)
plot3d(ce$x,ce$y,ce$z)
plot3d(cd$x,cd$y,cd$z,add=T,col=2)

As imagens são de um exemplo diferente, mas apenas para ilustrar. Você pode clicar e arrastar o mouse para girar.

    
por 21.01.2017 / 12:09