मेरे पास डेटा का एक बड़ा सेट है जिसे मैं पैटर्न में स्पॉट करने की उम्मीद कर 3 डी में प्रतिनिधित्व करने की कोशिश कर रहा हूं। मैंने कुछ समय पढ़ा, शोध और कोडिंग बिताई है, लेकिन फिर मुझे एहसास हुआ कि मेरी मुख्य समस्या प्रोग्रामिंग नहीं है, लेकिन वास्तव में डेटा को देखने के लिए एक तरीका चुन रहा है।मैटलप्लिब या मायावी में निम्नलिखित 3 डी डेटा का प्रतिनिधित्व कैसे करेंगे?
मैटलप्लिब के mplot3d कई विकल्प प्रदान करता है (वायरफ्रेम, समोच्च, भरे समोच्च, आदि), और मायावी भी करता है। लेकिन बहुत सारे विकल्प हैं (और प्रत्येक अपने सीखने की वक्र के साथ) कि मैं व्यावहारिक रूप से खो गया हूं और नहीं जानता कि कहां से शुरू करना है! तो मेरा सवाल अनिवार्य रूप से है कि यदि आप इस डेटा से निपटना चाहते हैं तो आप किस प्लॉटिंग विधि का उपयोग करेंगे?
मेरा डेटा दिनांक-आधारित है। समय के साथ प्रत्येक बिंदु के लिए, मैं एक मूल्य (सूची 'वास्तविक') प्लॉट करता हूं।
लेकिन समय के साथ प्रत्येक बिंदु के लिए, मेरे पास ऊपरी सीमा, निचली सीमा और मध्य दूरी बिंदु भी है। ये सीमाएं और मध्यबिंदु विभिन्न विमानों में बीज पर आधारित होती हैं।
मैं बिंदु को खोजना चाहता हूं या पैटर्न को पहचानना चाहता हूं, या इससे पहले, मेरे 'वास्तविक' पढ़ने में एक बड़ा परिवर्तन होता है। क्या यह तब होता है जब सभी विमानों की ऊपरी सीमाएं मिलती हैं? या एक दूसरे से संपर्क करें? क्या यह वास्तविक मूल्य ऊपरी/मध्य/निचली सीमा को छूता है? क्या यह एक विमान में उपर दूसरे विमान के लोअर को छूता है?
कोड में मैं पेस्ट कर रहा हूं, मैंने डेटा सेट को केवल कुछ तत्वों में घटा दिया है। मैं बस सरल स्कैटर और लाइन प्लॉट का उपयोग कर रहा हूं, लेकिन डेटा सेट (और शायद mplot3d की सीमाएं) के आकार के कारण, मैं उन रुझानों को ढूंढने के लिए इसका उपयोग करने में असमर्थ हूं जिन्हें मैं ढूंढ रहा हूं।
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()
मुझे यह साजिश मिल रही है, लेकिन यह मुझे किसी भी सह-संबंध देखने में मदद नहीं करता है।
मैं कोई गणितज्ञ या वैज्ञानिक नहीं हूं, इसलिए मुझे वास्तव में जो चाहिए वह मेरे डेटा को देखने के लिए फॉर्मेट चुनने में मदद करता है। Mplot3d में इसे दिखाने का कोई प्रभावी तरीका है? या आप मायावीस का उपयोग करेंगे? किसी भी मामले में, आप किस लाइब्रेरी और कक्षा (एसएस) का उपयोग करेंगे?
अग्रिम धन्यवाद।
आप देख रहे हैं सहसंबंध के लिए, 3 डी का सबसे अच्छा तरीका नहीं हो सकता। परिप्रेक्ष्य व्याख्या के रास्ते में आता है। आप इसके बजाय पक्षपात चार्ट, प्लॉटिंग और स्कैटरप्लॉट्स का उपयोग करना चाह सकते हैं। – gauden