Estoy trabajando en una simulación física 2D y estoy recopilando datos a tiempo en varios puntos. Estos puntos discretos están a lo largo de líneas verticales, con múltiples líneas en la dirección axial. Esto hace que el conjunto de datos sea efectivamente 4D.
Por ejemplo, supongamos que tengo puntos de colección en las coordenadas (X, Y) de:
- (0,0), (1,0), (2,0)
- (0,1), (1,1), (2,1)
- (0,2), (1,2), (2,2)
y en cada punto estoy recolectando donde es presión, es temperatura, son los componentes X e Y de la velocidad. En cada iteración de la simulación, estas variables se almacenan para los 9 puntos de recolección. Entonces, todos mis datos son continuos en el tiempo en cada punto discreto en el espacio.
Por ejemplo, los datos para un solo punto se verían así:
Estoy interesado en mostrar, por ejemplo, la presión en todos los puntos en todo momento para mostrar ondas verticales y axiales. Si tuviera que hacer esto a lo largo de una sola línea (vertical o axial), podría usar un diagrama de cascada con ejes (Y, tiempo, presión). Pero si tengo 3 líneas verticales y 3 líneas axiales, serían 6 trazados en cascada para obtener una imagen completa del movimiento de las olas en ambas direcciones. Las coordenadas espaciales son variables discretas mientras que el campo (en este caso Presión) y el tiempo son continuos.
En las figuras anteriores, por ejemplo, el pico de presión grande en podría estar viajando en la dirección X o Y.
¿Hay algún método para mostrarlos todos a la vez? Por lo general, se puede agregar color para hacer visible una "cuarta" dimensión, pero ¿hay otro enfoque posible? Planeo trazarlo de tantas formas como sea posible para ver si algo revela información que otros no, así que por favor propongan alguna idea.
¿Qué pasaría si la simulación fuera 3D y tuviera un conjunto de datos 5D resultante? ¿Eso cambia los posibles métodos de visualización?
Respuestas:
Tenía algunos datos de siete dimensiones yo mismo. Aunque finalmente me decidí por una pequeña selección de cortes tridimensionales, una opción es el Gráfico de coordenadas paralelas . ¡Esto funciona para un número arbitrario de dimensiones! De Wikipedia:
fuente
Gráficos de pares : este no es un método de reducción de dimensionalidad, pero es una muy buena manera de obtener una visión general rápida de dónde podrían estar algunas relaciones significativas. En R, el paquete base contiene la
pairs()
función, que es buena para datos continuos (convierte todo a continuo). Una mejor función esggpairs()
, desde elGGally
paquete:fuente
El análisis de componentes principales es generalmente una buena opción para la reducción de dimensiones en la mayoría de los casos, no estoy seguro de que se adapte a su problema particular, pero encontrará las dimensiones ortogonales a lo largo de las cuales se capturan la mayoría de las variaciones de muestras de datos. Si desarrolla en R, puede usar
prcomp()
para convertir simplemente su matriz original de puntos de datos al formulario PCA.fuente
Aquí hay un par de formas de retratar datos 3-D con ggplot2. Puede combinar enfoques (cuadrículas de facetas, colores, formas, etc.) para aumentar la dimensionalidad de su gráfico.
fuente
APdf <- data.frame(Time=c(time(AirPassengers)), Year=c(floor(time(AirPassengers))), Month=c(cycle(AirPassengers)), Value=c(AirPassengers)) ; APdf$Month <- month.abb[APdf$Month] ; ggplot(APdf, aes(x=Time, y=Value)) + facet_wrap(facets='Month') + geom_line(data=APdf[,c(1,4)], colour='gray') + geom_point()
. Maldita sea, me encanta ggplot2.Este gráfico muestra los perfiles de velocidad en diferentes ubicaciones axiales, brindándole un mapa 2D del campo de flujo. Las líneas verticales representan la velocidad 0. Las regiones sin puntos no son parte del dominio computacional. Por supuesto, esto no es fácilmente extensible a datos 3D ...
fuente