2011-09-07 25 views
26

अक्षों को दिखाए बिना मैं 3 डी प्लॉट कैसे बना सकता हूं?मैटलप्लिब 3 डी में अक्ष को कैसे छिपा सकता हूं?

3 डी प्लॉट की साजिश करते समय, Matplotlib न केवल एक्स, वाई, और जेड अक्ष खींचता है, यह एक्स-वाई, वाई-जेड और एक्स-जेड विमानों पर हल्के भूरे रंग के ग्रिड खींचता है। मैं इनमें से किसी भी तत्व के साथ "फ्री-फ्लोटिंग" 3 डी प्लॉट तैयार करना चाहता हूं।

सामग्री मैं कोशिश की है:

# Doesn't work; this hides the plot, not the axes 
my_3d_axes.set_visible(False) 

# Doesn't do anything. Also, there's no get_zaxis() function. 
my_3d_axes.get_xaxis().set_visible(False) 
my_3d_axes.get_yaxis().set_visible(False) 
+0

आप क्या काम करता था की कोशिश की है। दुर्भाग्यवश, मुझे यकीन नहीं है कि इसे आसानी से करने का कोई तरीका है, अब ... उम्मीद है कि अभी भी है! –

+0

@ जो क्लिंगटन: जिज्ञासा से, मैंने जो दो चीजों को काम करने के लिए इस्तेमाल किया था? मैं सोच रहा हूं, क्योंकि पहले, axes.set_visible() में निम्नलिखित सहायता वर्णन है: "कलाकार की दृश्यता सेट करें।" तो ऐसा लगता है कि यह हमेशा ग्राफ की दृश्यता सेट करना था, अक्ष नहीं। दूसरे के लिए, यह कैसे काम किया, जब कभी get_zaxis() विधि नहीं थी? – SuperElectric

+0

यह 'my_3d_axes.set_visible (झूठा) 'था जो काम करने के लिए उपयोग करता है, अगर मुझे सही याद है। (जो वास्तव में प्रतिद्वंद्वी है, वास्तव में। यह 2 डी भूखंडों के लिए पूरी साजिश को छुपाता है, यही कारण है कि उन्होंने इसे 3 डी भूखंडों के लिए समान बना दिया।) –

उत्तर

21

बेन रूट एक पैच कि 1.0.1 के लिए यह समस्या नहीं प्रदान की है। इसे this thread के अंतिम ईमेल से अनुलग्नक के रूप में पाया जा सकता है। बेन को उद्धृत करने के लिए:

ठीक है, ऐसा लगता है कि 3 डी अक्ष के छिपाने की तरह v1.0 रिलीज के बाद एक सुविधा जोड़ा गया था (लेकिन इससे पहले कि मैंने mplot3d पर काम करना शुरू किया)। इस पैच को मौजूदा कार्यों के साथ हस्तक्षेप किए बिना बुनियादी सुविधा को सक्षम करना चाहिए। कुल्हाड़ियों छुपाने के लिए, आप गलत है, तो जैसे करने के लिए निजी सदस्य "_axis3don" सेट करने के लिए होगा:

कुल्हाड़ी = plt.gca (प्रक्षेपण = '3 डी') ax._axis3don = झूठी

आप तो इसे इस तरह से करें, फिर आप जो चाहते हैं उसे प्राप्त करेंगे, और जब भी आप अपग्रेड करते हैं तो आपका कोड mplot3d के साथ संगत होगा (हालांकि पसंदीदा विधि set_axis_on() या set_axis_off() को कॉल करना होगा)।

मुझे उम्मीद है कि इससे मदद मिलती है!

बेन रूट

+20

'ax.set_axis_off()' और 'set_axis_on()' अब समर्थित है (1.4.1) – user989762

संबंधित मुद्दे