Mam duży zestaw danych, które próbuję reprezentować w 3D mając nadzieję wykryć wzór. Spędziłem sporo czasu na czytaniu, badaniu i kodowaniu, ale wtedy zdałem sobie sprawę, że moim głównym problemem NIE jest programowanie, ale w rzeczywistości wybieranie sposobu wizualizacji danych.W jaki sposób można reprezentować następujące dane 3D w Matplotlib lub Mayavi?
Program mplot3d firmy Matplotlib oferuje wiele opcji (szkielet, kontur, wypełniony kontur itp.), Podobnie jak MayaVi. Ale jest tak wiele wyborów (i każda z własną krzywą uczenia się), że praktycznie jestem zagubiony i nie wiem od czego zacząć! Moje pytanie brzmi więc zasadniczo, którą metodę kreślenia używałbyś, gdybyś miał do czynienia z tymi danymi?
Moje dane są oparte na datach. Dla każdego punktu w czasie wykreślam wartość (lista "Rzeczywisty").
Ale dla każdego punktu w czasie mam również górny limit, dolny limit i środkowy punkt zakresu. Te ograniczenia i punkty środkowe są oparte na ziarnie, w różnych płaszczyznach.
Chcę rozpoznać punkt lub zidentyfikować wzór, kiedy lub w czasie mojej ważnej zmiany nastąpi mój "aktualny" odczyt. Czy to się dzieje, gdy spotykają się górne limity dla wszystkich samolotów? Lub podejść do siebie? Czy to jest, gdy wartość rzeczywista dotyka górnego/środkowego/dolnego limitu? Czy to jest, gdy wierzchy w jednej płaszczyźnie dotykają Niższych z innej płaszczyzny?
W kodzie, który wklejam, zmniejszyłem zestaw danych do zaledwie kilku elementów. Używam tylko prostych wykresów rozproszenia i linii, ale ze względu na rozmiar zbioru danych (i być może ograniczenia mplot3d?), Nie jestem w stanie użyć go do wykrycia trendów, których szukam.
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()
Dostaję ten spisek, ale to nie pomaga mi widzieć żadnych współpracowników relacji.
Nie jestem matematykiem ani naukowcem, więc potrzebuję pomocy przy wyborze FORMATU, w którym będę wizualizował moje dane. Czy istnieje skuteczny sposób pokazania tego w mplot3d? A może użyłbyś MayaVis? W obu przypadkach, której biblioteki i klasy (klas) używałbyś?
Z góry dziękuję.
Jeśli szukasz korelacji, 3D może nie być najlepszym sposobem. Perspektywa staje na drodze do interpretacji. Zamiast tego możesz użyć wykadrowanych wykresów, wykresów i wykresów rozrzutu. – gauden