19 votos

Maneras de reducir los grandes dimensiones para la visualización de datos

Estoy trabajando en un 2D simulación física y estoy recogiendo datos en el tiempo en varios puntos. Estos puntos discretos están a lo largo de las líneas verticales, con múltiples líneas en la dirección axial. Esto hace que el conjunto de datos de manera efectiva 4D.

Por ejemplo, supongamos que tiene puntos de recogida en (X,Y) las coordenadas de:

  • (0,0), (1,0), (2,0)
  • (0,1), (1,1), (2,1)
  • (0,2), (1,2), (2,2)

y en cada punto estoy recogiendo $\{P,T,U,V\}$ donde $P$ es la presión, $T$ es la temperatura, $U,V$ son el X y el Y-componentes de la velocidad. En cada iteración de la simulación, estas variables se almacenan para todos los 9 puntos de recogida. Así que todos mis datos es continuo en el tiempo en cada punto en el espacio.

Por ejemplo, los datos de un solo punto, se vería así:

Pressure vs Time for a single pointU-Velocity vs Time for a single point

Estoy interesado en mostrar, decir, la Presión en todos los puntos de todos los tiempos para mostrar vertical y axial de las olas. Si yo fuera a hacer esto a lo largo de una sola línea (ya sea vertical o axial), que podría utilizar un diagrama de cascada, con los ejes (Y, de tiempo, de Presión). Pero si tengo 3 líneas verticales y 3 axial líneas, este sería de 6 gráficas en cascada para obtener una imagen completa de la onda de movimiento en ambas direcciones. Las coordenadas espaciales son variables discretas, mientras que el campo (en este caso la Presión) y el tiempo son continuos.

En las cifras anteriores, por ejemplo, el gran pico de presión en $t\approx0.000125$ podría estar viajando en la dirección de X o Y.

Hay un método para mostrar a todos ellos a la vez? Generalmente el color puede ser añadido para hacer una "cuarta" dimensión visible, pero hay otro enfoque posible? Mi plan trazado como tantas maneras como sea posible para ver si algo revela información que otros no, así que por favor tono de las ideas.

¿Y si la simulación fueron 3D y tuve una 5D conjunto de datos resultante? ¿Que cambio la posible visualización de los métodos?

3voto

Análisis de Componentes principales es por lo general una buena opción para la reducción de dimensiones en la mayoría de los casos, no estoy seguro de que va a satisfacer para su problema en particular, sino de encontrar las dimensiones ortogonales a lo largo de la cual la mayoría de variación de las muestras de datos son capturados. Si usted desarrolla en R, puede utilizar prcomp() simplemente convertir su matriz original de datos de puntos para la PCA de forma.

3voto

Juriy Puntos 133

Pares de parcelas: Esto no es un método de reducción de dimensionalidad, pero en realidad es una buena manera de obtener una visión general rápida de donde algunas relaciones significativas mentira. En R, la base de paquete contiene la pairs() función, lo cual es bueno para datos continuos (se convierte todo en continuo). Una mejor función es ggpairs(), a partir de la GGally paquete de:

library(GGally)
ggpairs(iris, colour='Species')

Iris pairs plot

2voto

kareman Puntos 396

Para las dos dimensiones del problema, me pregunto si usted podría trazar un mapa de su traza puntos con algún símbolo en el (x,y) las coordenadas. Entonces este símbolo podría cambiar de color o oscilar alrededor de su posición fija (correspondiente a $p=p_{mean}$ por ejemplo). Puedo ver ambos son relativamente fáciles de hacer en matplotlib. Donde el símbolo oscilar me hace pensar en una trama trama como esta: enter image description here

Este gráfico muestra los perfiles de velocidad en diferentes lugares axial, dándole un mapa 2D de la flowfield. Las líneas verticales representan el 0 de la velocidad. Las regiones sin puntos no son parte del dominio computacional. Por supuesto, esto no es fácilmente extensible de datos en 3D...

2voto

Dale Ragan Puntos 14495

Aquí hay un par de maneras de retratar 3-D datos con ggplot2. Usted puede combinar enfoques (faceta cuadrículas, colores, formas, etc.) para aumentar la dimensionalidad de su gráfico.

doInstall <- TRUE  # Change to FALSE if you don't want packages installed.
toInstall <- c("ggplot2")
if(doInstall){install.packages(toInstall, repos = "http://cran.r-project.org")}
lapply(toInstall, library, character.only = TRUE)

# Air passenger data. ts converted to long matrix:
myData <- data.frame(Year = c(floor(time(AirPassengers) + .01)),
                     Month = c(cycle(AirPassengers)), 
                     Value = c(AirPassengers))
# Easy conversion code from: http://stackoverflow.com/a/4973859/479554

# Convert month numbers to names, using a built-in constant:
myData$Month <- factor(myData$Month)
levels(myData$Month) <- month.abb

# One possibility:
zp1 <- ggplot(myData,
              aes(x = Year, y = Value, colour = Month))
zp1 <- zp1 + geom_line()
print(zp1)  # This is fine, if you can differentiate between the colors

# Another possibility:
zp2 <- ggplot(myData,
              aes(x = Year, y = Value))
zp2 <- zp2 + geom_line()
zp2 <- zp2 + facet_wrap(~ Month)
print(zp2)  # This is fine, but it's hard to compare across facets

# A third possibility; plotting reference lines across each facet:
referenceLines <- myData  # \/ Rename
colnames(referenceLines)[2] <- "groupVar"
zp3 <- ggplot(myData,
              aes(x = Year, y = Value))
zp3 <- zp3 + geom_line(data = referenceLines,  # Plotting the "underlayer"
                       aes(x = Year, y = Value, group = groupVar),
                       colour = "GRAY", alpha = 1/2, size = 1/2)
zp3 <- zp3 + geom_line(size = 1)  # Drawing the "overlayer"
zp3 <- zp3 + facet_wrap(~ Month)
zp3 <- zp3 + theme_bw()
print(zp3)

enter image description here

1voto

Farhan Puntos 106

Yo tenía unos siete dimensiones de datos mí mismo. Aunque finalmente me decidí por una pequeña selección de las 3 dimensiones de la rebanada-throughs, una opción es el Paralelo de las Coordenadas de la Parcela. Esto funciona para un número arbitrario de dimensiones! De La Wikipedia:

En paralelo coordenadas es una forma común de visualización de alta dimensión de la geometría y el análisis de datos multivariantes.

Para mostrar un conjunto de puntos en un espacio n-dimensional, un telón de fondo se dibuja consta de n líneas paralelas, generalmente vertical y uniformemente espaciados. Un punto en el espacio n-dimensional es representado como una polilínea con vértices en los ejes paralelos; la posición del vértice en la i-ésima eje corresponde a la i-ésima coordenada del punto.

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X