मैं अभिव्यक्ति के लिए 3-आयामी सतह साजिश बनाने की कोशिश कर रहा हूं: z = y^2/x, अंतराल में x के लिए [-2,2] और y अंतराल में [-1.4,1.4]। मैं यह भी चाहता हूं कि जेड-वैल्यू -4 से 4 तक हो।पायथन/matplotlib mplot3d- मैं z-axis के लिए अधिकतम मान कैसे निर्धारित करूं?
समस्या यह है कि जब मैं समाप्त सतहप्लॉट देख रहा हूं, तो z-axis मान [-4,4] पर नहीं रुकते हैं।
तो मेरा सवाल यह है कि मैं जेड-अक्ष मान को "हटा" सकता हूं जो कि समाप्त साजिश से अंतराल [-4,4] के बाहर है?
मेरे कोड है:
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.gca(projection="3d")
x = np.arange(-2.0,2.0,0.1,float) # x in interval [-2,2]
y = np.arange(-1.4,1.4,0.1,float) # y in interval [-1.4,1.4]
x,y = np.meshgrid(x,y)
z = (y**2/x) # z = y^2/x
ax.plot_surface(x, y, z,rstride=1, cstride=1, linewidth=0.25)
ax.set_zlim3d(-4, 4) # viewrange for z-axis should be [-4,4]
ax.set_ylim3d(-2, 2) # viewrange for y-axis should be [-2,2]
ax.set_xlim3d(-2, 2) # viewrange for x-axis should be [-2,2]
plt.show()
वहाँ कोई बेहतर तरीका है यह करने के लिए? साजिश को देखते समय [-4,4] की सीमा के बाहर जेड-वैल्यू को "कट" करने के लिए? – user605243
@ user605243: सिद्धांत रूप में, आप एक masked_array का उपयोग करने में सक्षम होना चाहिए, जैसे आप 2 डी प्लॉट के साथ कर सकते हैं। प्रैक्टिस में यह काम नहीं कर रहा है (हालांकि axes3d.py में आवश्यक परिवर्तन _too_ daunting प्रतीत नहीं होता है।) दुर्भाग्य से मैं वास्तव में काम करने के लिए np.nan चाल नहीं प्राप्त कर सकता था, जिसमें बहुत से " CGPathCloseSubpath: कोई वर्तमान बिंदु नहीं। " त्रुटियों। – DSM