2014-05-22 10 views
7
में सेट zlim
mpl.rcParams['legend.fontsize'] = 10 

fig1 = plt.figure() 
ax = fig1.gca(projection='3d') 

ax.plot(tab_C[0], tab_C[1], zs=0, zdir='z', label = "Projection de la trajectoire de C", color='k') 
ax.plot(tab_M[0], tab_M[1], zs=0, zdir='z', label = "Projection de la trajectoire de M", color='r') 

for i in range(0,len(tab_t)): 
    ax.plot(tab_C[0][i:i+2], tab_C[1][i:i+2], tab_C[2][i:i+2], color=plt.cm.rainbow(255*i/len(tab_t))) 
    ax.plot(tab_M[0][i:i+2], tab_M[1][i:i+2], tab_M[2][i:i+2], color=plt.cm.rainbow(255*i/len(tab_t))) 

ax.legend() 

ax.set_xlabel('I') 
ax.set_ylabel('J') 
ax.set_zlabel('K') 

m = cm.ScalarMappable(cmap=cm.rainbow) 
m.set_array(tab_t) 

plt.colorbar(m) 

मैं अपने कोड के साथ इस साजिश मिल गया हैअजगर - mplot3D

My plot

मेरे समस्याओं कर रहे हैं - मैं रंग बार के लिए लेबल सेट करना चाहते हैं, लेकिन ScalarMappale की जरूरत नहीं है मेथोड set_label() - मैं योजना (0xy) पर स्पष्ट रूप से प्रक्षेपण देखने के लिए zmin = 0 सेट करना चाहता हूं लेकिन ऐसा लगता है कि ज़मीन यहां 0.05 है और जब मैं ax.set_zlim (नीचे = 0) यह

देता है
Traceback (most recent call last): 
    File "code.py", line 117, in <module> 
    ax.set_zlim(bottom=0) 
    File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/axes3d.py", line 515, in set_zlim3d 
    lims = self._determine_lims(*args, **kwargs) 
    File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/axes3d.py", line 476, in _determine_lims 
    xmin -= 0.05 
TypeError: unsupported operand type(s) for -=: 'NoneType' and 'float' 

क्या मेरी समस्याओं का समाधान करने का कोई तरीका है?

+1

http://matplotlib.org देखना /examples/api/colorbar_only.html ऐसा लगता है कि कलरबार में एक विधि होनी चाहिए 'set_label' – Sleepyhead

+1

समस्याएं होने पर' set_zlim (min_value, maxvalue) 'का उपयोग करने का सही तरीका' set_zlim3d' – Sleepyhead

+0

@ स्लीपहेड आप अपनी टिप्पणी पोस्ट कर सकते हैं उत्तर के रूप में ... –

उत्तर

4

बुला का सही तरीका है: set_zlim(min_value, max_value), देखते हैं, तो समस्याएं भी set_zlim3d

प्रलेखन के अनुसार कोशिश, colorbar वस्तु एक विधि set_label है, एक उदाहरण here

+0

मैंने आपके सुझाव के लिए प्रयास किया है t_zlim, यह वही त्रुटि दे दी। और set_zlim3D के लिए यह एट्रिब्यूट एरर दिया गया: 'एक्सिस 3DSubplot' ऑब्जेक्ट में कोई विशेषता नहीं है 'set_zlim3D' – pomxipum

+0

और जब मैं कलरबार का उपयोग करता हूं। कॉलरबारबेस, यह दिया गया: विशेषताइरर: 'क्वाडमेश' ऑब्जेक्ट में कोई विशेषता नहीं है 'do_3d_projection' – pomxipum

+0

'cb = plt.colorbar (m) cb.set_label ('blabla') 'मेरे लिए पूरी तरह से ठीक काम करता है – Sleepyhead