En este apartado intentaré desglosar los conocimientos que necesite en pos de crear y entender el proyecto para que sea de utilidad a otra personas con interés de aprender.
āQue es R?
-
R es un entorno y lenguaje de programación e implementación de software libre descendiente del lenguaje S pero con soporte de alcance estático.
-
Se trata de uno de los lenguajes más utilizados en investigación por la comunidad estadística, siendo además muy popular en el campo de la minería de datos, la investigación biomédica, la bioinformática y las matemáticas financieras.
-
Existe la posibilidad de cargar diferentes bibliotecas o paquetes con funcionalidades de cálculo y gráficos.
-
Fue desarrollado inicialmente por Robert Gentleman y Ross Ihaka en 1993.
-
RStudio es el entorno de desarrollo integrado exclusivo para R.
LIBRERÍAS NECESARIAS:
-
install.packages("rgl"): Renderizacion a tiempo real de gráficos 3D por medio de openGL.
-
install.packages("magick"): Librería necesaria para exportar los gráficos en formato GIF.
-
install.packages("MASS"): Librería necesaria para soportar funciones Venables y Ripley.
-
install.packages("RNetCDF"): Librería necesaria para lectura de arfivos *.nc.
-
install.packages("plot3Drgl"): Ciertas funciones para crear Graficos 3D.
-
install.packages("OceanView"): Interpretación de datos oceanográficos.
-
install.packages("Marelac"): Conjuntos de datos, constantes, factores de conversión y utilidades para las ciencias 'Marinas'.
ā
ā
FUNCIONES PRINCIPALES:
-
rgl.snapshot(filename = "plot.png"): Exportar gráfico en formato PNG.
-
rgl.postscript("plot.pdf",fmt="pdf"): Exportar gráfico en formato PDF.
-
movie3d( spin3d( axis = c(0, 0, 1), rpm = 7),duration = 10, dir = getwd(),type = "gif", clean =TRUE ): Exportar gráfico en movimiento en formato GIF.
-
play3d( spin3d( axis = c(0, 0, 1), rpm = 7), duration = 100 ): Giro automático para Gráficos 3D.
-
for (i in 1:9999){rainbow(i)}: bucle para crear gráficos arcoiris.
-
persp3d(volcano, col = "green"): Crear Gráfico a partir de un fichero de datos.
-
savehistory("nombreArchivo.Rhistory"): Guardar el Historial de la sesión.
-
āloadhistory("nombreArchivo.Rhistory"): Cargar historial de sesión anterior.
-
save.image("nombreArchivo.R"): Guardar código de programa en formato R.
-
load("nombreArchivo.R"): Cargar código de programa previamente guardado.
ā
ā
plot3d():
data(iris) # Importar tabla de datos
head(iris) # Leer cabezera
plot3d( iris$Sepal.Length, # Datos eje X
iris$Sepal.Width, # Datos eje Y
iris$Petal.Length, # Datos eje Z
col = iris$Petal.Width, #Grupos de colores
type = "s", #Tipo de Grafico (s = sferas, l = lineas, p = puntos)
radius = 0.1; #Radio de las esferas
play3d( spin3d( axis = c(0, 0, 1), #Eje que gira
rpm = 7), #Revoluciones por minuto
duration = 100 ); # Duracion
ā
CÓDIGOS COMENTADOS:
ā
ā
persp():
x <- seq(-10, 10, length= 30) #Valores de Inicio
y <- x
f <- function(x, y) { r <- sqrt(x^2+y^2); 10 * sin(r)/r }#Función matemática a representar
z <- outer(x, y, f)
for(i in 1:1439){ #Bucle para movimiento
persp(x, y, z, theta =i/8, phi =i/8, #Velocidad de movimiento
expand = 0.5, col = rainbow(i),#color arco iris
ltheta = 120, shade = 0.75,
ticktype = "detailed",
xlab = "X", ylab = "Y", zlab = "Z")#Titulo de cada eje
}
ā
OceanView():
load(file = "argo.rda") # Importar lista de ficheros
xlim <- c(-90, 50)
ylim <- c(-70, 70)
ii <- which (Hypsometry$x >= xlim[1] & Hypsometry$x <= xlim[2])# Datos eje Y
jj <- which (Hypsometry$y >= ylim[1] & Hypsometry$y <= ylim[2])# Datos eje X
mx <- Hypsometry$x[ii]# Datos eje X
my <- Hypsometry$y[jj]# Datos eje Y
mz <- Hypsometry$z[ii,jj]# Datos eje Z
mz [ mz > 0] <- 0
persp3D(x = mx, y = my, z = mz, # Generar Grafico
col = "grey", plot = FALSE, # Colo Gris
main = "argo floats, januari 2012", cex.main = 2)# Titulo del Grafico
clim <- range(argo$temp, na.rm = TRUE)
with (argo,
for (i in 1:length(Time)) {
pmin <- min(-press[[i]] , na.rm = TRUE)
scatter3D(longitude[[i]], latitude[[i]], -press[[i]] , colvar = temp[[i]] ,#Generar barra de colores
plot = FALSE, add = TRUE, pch = 16, cex = 0.6, clim = clim,
colkey = FALSE, NAcol = "transparent")})
plotrgl(smooth = TRUE, lighting = TRUE)# Mostrar Grafico
play3d( spin3d( axis = c(0, 0, 1), rpm = 7), duration = 100 )#Giro Automatico
ā
ā
ā
REFERENCIAS:
ā
http://coastwatch.pfeg.noaa.gov/
http://www.reed.edu/data-at-reed/resources/R/reading_and_writing.html
https://cran.r-project.org/web/packages/rgl/vignettes/rgl.html
http://sae.saiblogs.inf.um.es/generando-graficos-3d-en-movimiento-con-r/
https://www.r-bloggers.com/three-dimensional-plots-using-rgl-package/
ā