Matplotlib में एक पारदर्शी Poly3DCollection प्लॉट प्लॉट करने के लिए, हम निम्नलिखित कदम उठा सकते हैं -
- आकृति का आकार सेट करें और सबप्लॉट के बीच और आसपास पैडिंग समायोजित करें
- नया आंकड़ा बनाएं या मौजूदा आंकड़ा सक्रिय करें।
- एक '~.axes.Axes' जोड़ें प्रक्षेपण=3d . के साथ एक सबप्लॉट व्यवस्था के हिस्से के रूप में चित्र के लिए ।
- बनाएं x , y और z डेटा बिंदु।
- शीर्षों की सूची बनाएं।
- रूपांतरित करें x , y और z डेटा टुपल्स की ज़िप्ड सूची में इंगित करता है।
- Poly3d . के इंस्टेंस की सूची प्राप्त करें ।
- add_collection3d() . का उपयोग करके प्लॉट में एक 3D संग्रह ऑब्जेक्ट जोड़ें विधि।
- कुल्हाड़ियों को बंद करें।
- आंकड़ा प्रदर्शित करने के लिए, दिखाएं () . का उपयोग करें विधि।
उदाहरण
from matplotlib import pyplot as plt from mpl_toolkits.mplot3d.art3d import Poly3DCollection, Line3DCollection plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True fig = plt.figure() ax = fig.add_subplot(111, projection='3d') x = [0, 2, 1, 1] y = [0, 0, 1, 0] z = [0, 0, 0, 1] vertices = [[0, 1, 2], [0, 1, 3], [0, 2, 3], [1, 2, 3]] tupleList = list(zip(x, y, z)) poly3d = [[tupleList[vertices[ix][iy]] for iy in range(len(vertices[0]))] for ix in range(len(vertices))] ax.scatter(x, y, z) ax.add_collection3d(Poly3DCollection(poly3d, facecolors='w', linewidths=1, alpha=0.5)) ax.add_collection3d(Line3DCollection(poly3d, colors='k', linewidths=2, linestyles='--')) plt.axis('off') plt.show()
आउटपुट