Tôi có một bộ dữ liệu lớn mà tôi đang cố gắng trình bày trong 3D với hy vọng phát hiện ra một mẫu. Tôi đã dành khá nhiều thời gian để đọc, nghiên cứu và viết mã, nhưng sau đó tôi nhận ra vấn đề chính của mình KHÔNG phải là lập trình, nhưng thực sự là chọn cách để trực quan hóa dữ liệu.Bạn sẽ trình bày dữ liệu 3D sau đây như thế nào trong Matplotlib hoặc Mayavi?
mplot3d Matplotlib của cung cấp rất nhiều tùy chọn (wireframe, đường viền, điền đường viền, vv), và do đó, MayaVi. Nhưng có rất nhiều sự lựa chọn (và mỗi lựa chọn với đường cong học tập của riêng mình) mà tôi thực tế đã mất và không biết bắt đầu từ đâu! Vì vậy, câu hỏi của tôi về cơ bản là phương pháp âm mưu bạn sẽ sử dụng nếu bạn đã phải đối phó với dữ liệu này?
dữ liệu của tôi là ngày-based. Đối với mỗi điểm trong thời gian, tôi vẽ một giá trị (danh sách 'Thực tế').
Nhưng đối với mỗi điểm trong thời gian, tôi cũng có một giới hạn trên, giới hạn thấp hơn, và một điểm tầm trung. Các giới hạn và điểm giữa này dựa trên hạt giống, trong các mặt phẳng khác nhau.
Tôi muốn để phát hiện các điểm hoặc xác định mô hình khi, hoặc trước đó, một sự thay đổi lớn xảy ra trong đọc 'thực tế' của tôi. Có phải khi các giới hạn trên trên tất cả các máy bay gặp nhau không? Hoặc tiếp cận nhau? Có phải khi giá trị thực tế chạm vào giới hạn Trên/Trung/Thấp hơn không? Có phải khi Uppers trong một mặt phẳng chạm vào các Máy bay của một chiếc máy bay khác không?
Trong mã Tôi dán, tôi đã giảm dữ liệu thiết lập để chỉ một vài yếu tố. Tôi chỉ sử dụng các ô phân tán và đường kẻ đơn giản, nhưng vì kích thước của tập dữ liệu (và có thể là giới hạn của mplot3d?), Tôi không thể sử dụng nó để phát hiện ra xu hướng tôi đang tìm kiếm.
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()
Tôi nhận được cốt truyện này, nhưng nó không giúp tôi thấy bất kỳ mối quan hệ nào.
Tôi không phải là nhà toán học hay nhà khoa học, vì vậy điều tôi thực sự cần là giúp chọn FORMAT để hiển thị dữ liệu của tôi. Có một cách hiệu quả để hiển thị điều này trong mplot3d? Hay bạn sẽ sử dụng MayaVis? Trong cả hai trường hợp, bạn sẽ sử dụng thư viện và lớp học nào?
Xin cảm ơn trước.
Nếu bạn đang tìm kiếm mối tương quan, 3d thể không phải là cách tốt nhất. Quan điểm nhận được trong cách giải thích. Bạn có thể muốn sử dụng các biểu đồ có khía cạnh, thay vì vẽ sơ đồ và các ô phân tán. – gauden