Tengo un gran conjunto de datos que trato de representar en 3D con la esperanza de detectar un patrón. He pasado bastante tiempo leyendo, investigando y codificando, pero luego me di cuenta de que mi principal problema NO es la programación, sino que realmente el está eligiendo una forma de visualizar los datos.¿Cómo representaría los siguientes datos 3D en Matplotlib o Mayavi?
El mplot3d de Matplotlib ofrece muchas opciones (estructura alámbrica, contorno, contorno relleno, etc.), y también lo hace MayaVi. Pero hay tantas opciones (y cada una con su propia curva de aprendizaje) que estoy prácticamente perdido y no sé por dónde empezar. Entonces, mi pregunta es, en esencia, ¿qué método de trazado utilizarías si tuvieras que lidiar con estos datos?
Mis datos se basan en fechas. Para cada punto en el tiempo, trazado un valor (la lista 'Actual').
Pero para cada punto en el tiempo, también tengo un límite superior, un límite inferior y un punto de rango medio. Estos límites y puntos medios se basan en una semilla, en diferentes planos.
Quiero ver el punto o identificar el patrón cuando, o antes, ocurre un cambio importante en mi lectura 'Actual'. ¿Es cuando se encuentran los límites superiores en todos los planos? ¿O acercarse el uno al otro? ¿Es cuando el valor real toca un límite superior/medio/inferior? ¿Es cuando los Uppers en un solo plano tocan los Lowers de otro avión?
En el código que estoy pegando, he reducido el conjunto de datos a solo unos pocos elementos. Solo estoy usando gráficos simples de dispersión y de línea, pero debido al tamaño del conjunto de datos (¿y quizás las limitaciones de mplot3d?), No puedo usarlo para detectar las tendencias que estoy buscando.
dates = [20110101,20110104,20110105,20110106,20110107,20110108,20110111,20110112]
zAxis0= [ 0, 0, 0, 0, 0, 0, 0, 0]
Actual= [ 1132, 1184, 1177, 950, 1066, 1098, 1116, 1211]
zAxis1= [ 1, 1, 1, 1, 1, 1, 1, 1]
Tops1 = [ 1156, 1250, 1156, 1187, 1187, 1187, 1156, 1156]
Mids1 = [ 1125, 1187, 1125, 1156, 1156, 1156, 1140, 1140]
Lows1 = [ 1093, 1125, 1093, 1125, 1125, 1125, 1125, 1125]
zAxis2= [ 2, 2, 2, 2, 2, 2, 2, 2]
Tops2 = [ 1125, 1125, 1125, 1125, 1125, 1250, 1062, 1250]
Mids2 = [ 1062, 1062, 1062, 1062, 1062, 1125, 1000, 1125]
Lows2 = [ 1000, 1000, 1000, 1000, 1000, 1000, 937, 1000]
zAxis3= [ 3, 3, 3, 3, 3, 3, 3, 3]
Tops3 = [ 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250]
Mids3 = [ 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187]
Lows3 = [ 1125, 1125, 1000, 1125, 1125, 1093, 1093, 1000]
import matplotlib.pyplot
from mpl_toolkits.mplot3d import Axes3D
fig = matplotlib.pyplot.figure()
ax = fig.add_subplot(111, projection = '3d')
#actual values
ax.scatter(dates, zAxis0, Actual, color = 'c', marker = 'o')
#Upper limits, Lower limts, and Mid-range for the FIRST plane
ax.plot(dates, zAxis1, Tops1, color = 'r')
ax.plot(dates, zAxis1, Mids1, color = 'y')
ax.plot(dates, zAxis1, Lows1, color = 'b')
#Upper limits, Lower limts, and Mid-range for the SECOND plane
ax.plot(dates, zAxis2, Tops2, color = 'r')
ax.plot(dates, zAxis2, Mids2, color = 'y')
ax.plot(dates, zAxis2, Lows2, color = 'b')
#Upper limits, Lower limts, and Mid-range for the THIRD plane
ax.plot(dates, zAxis3, Tops3, color = 'r')
ax.plot(dates, zAxis3, Mids3, color = 'y')
ax.plot(dates, zAxis3, Lows3, color = 'b')
#These two lines are just dummy data that plots transparent circles that
#occpuy the "wall" behind my actual plots, so that the last plane appears
#floating in 3D rather than being pasted to the plot's background
zAxis4= [ 4, 4, 4, 4, 4, 4, 4, 4]
ax.scatter(dates, zAxis4, Actual, color = 'w', marker = 'o', alpha=0)
matplotlib.pyplot.show()
Estoy recibiendo esta trama, pero simplemente no me ayuda a ver ninguna correlación.
No soy matemático ni científico, entonces lo que realmente necesito es ayuda para elegir el FORMATO en el que visualizar mis datos. ¿Hay alguna manera efectiva de mostrar esto en mplot3d? ¿O usarías MayaVis? En cualquier caso, ¿qué biblioteca y clase usarías?
Gracias de antemano.
Si está buscando correlaciones, 3d puede no ser la mejor manera. La perspectiva se interpone en el camino de la interpretación. Es posible que desee utilizar gráficos facetados, sobre trazado y diagramas de dispersión en su lugar. – gauden