Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Matplotlib में टपल्स की सूची से 3D सरफेस प्लॉट करें

Matplotlib में (x, y, z) टपल्स की सूची से 3D सरफेस प्लॉट करने के लिए डेटा को अनपैक करें, मेशग्रिड बनाएं, और plot_surface() का उपयोग करें।

चरण

  1. फिगर आकार सेट करें और पैडिंग समायोजित करें
  2. टपल्स की सूची बनाएं
  3. टपल्स की सूची से x, y, z डेटा बिंदु निकालें
  4. np.meshgrid() से निर्देशांक मैट्रिक्स प्राप्त करें
  5. सरफेस प्लॉट के लिए h डेटा बिंदु प्राप्त करें (उदाहरण: h = x² + y²)
  6. नया फिगर बनाएं या मौजूदा सक्रिय करें
  7. projection='3d' के साथ वर्तमान एक्सिस प्राप्त करें
  8. सरफेस प्लॉट बनाएं
  9. plt.show() से प्रदर्शित करें

उदाहरण


import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

# टपल्स की सूची: (x, y, z)
data = [(1, 3, 2), (3, 5, 2), (4, 7, 4), (8, 7, 4),
        (3, 6, 1), (3, 9, 0), (3, 9, 0)]

# अनपैक करें
x, y, z = zip(*data)

# मेशग्रिड के लिए अद्वितीय x, y मान
x_unique = np.unique(x)
y_unique = np.unique(y)
x_grid, y_grid = np.meshgrid(x_unique, y_unique)

# सरफेस ऊंचाई: h = x² + y² (उदाहरण फंक्शन)
h = x_grid ** 2 + y_grid ** 2

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

# सरफेस प्लॉट
ax.plot_surface(x_grid, y_grid, h, cmap='plasma', alpha=0.8)

# मूल डेटा बिंदु भी प्लॉट करें
ax.scatter(x, y, z, color='red', s=50, label='मूल डेटा')
ax.legend()

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('टपल्स से 3D सरफेस')

plt.show()

आउटपुट

3D सरफेस प्लॉट h = x² + y² के साथ, मूल डेटा बिंदु लाल डॉट्स के रूप में ओवरले किए गए।

महत्वपूर्ण नोट

मूल कोड में x, y = np.meshgrid(x, y) गलत है क्योंकि x और y में डुप्लिकेट मान हैं। सही दृष्टिकोण np.unique() का उपयोग करके अद्वितीय मानों से ग्रिड बनाना है, फिर इंटरपोलेशन/ग्रिडडेटा का उपयोग करना है।

सही दृष्टिकोण: griddata से इंटरपोलेशन


from scipy.interpolate import griddata

# अनियमित डेटा को नियमित ग्रिड पर इंटरपोलेट करें
x_unique = np.linspace(min(x), max(x), 50)
y_unique = np.linspace(min(y), max(y), 50)
x_grid, y_grid = np.meshgrid(x_unique, y_unique)

z_grid = griddata((x, y), z, (x_grid, y_grid), method='cubic')

ax.plot_surface(x_grid, y_grid, z_grid, cmap='plasma')

मुख्य बिंदु

  • zip(*data) टपल्स की सूची को तीन सूचियों में अनपैक करता है
  • अनियमित डेटा के लिए griddata (SciPy) आवश्यक है
  • method='cubic' स्मूथ सरफेस देता है, 'linear' तेज़
  • सरफेस प्लॉट के लिए नियमित ग्रिड (meshgrid) आवश्यक है
  1. Python के Matplotlib में गोले की सतह पर पॉइंट्स प्लॉट करना Python के Matplotlib में गोले की सतह पर पॉइंट्स प्लॉट करना

    Python में गोले की सतह पर पॉइंट्स प्लॉट करने के लिए, हम plot_surface() मेथड का उपयोग कर सकते हैं। चरण figure() मेथड का उपयोग करके नया फिगर बनाएं या मौजूदा फिगर सक्रिय करें। add_subplot() मेथड का उपयोग करके 3d प्रोजेक्शन के साथ सबप्लॉट्स का सेट जोड़ें। वेरिएबल r इनिशियलाइज़ करें। NumPy का उप

  1. 3D NumPy ऐरे से Matplotlib में 3D प्लॉट बनाना 3D NumPy ऐरे से Matplotlib में 3D प्लॉट बनाना

    3D NumPy ऐरे से 3D प्लॉट बनाने के लिए, हम NumPy का उपयोग करके 3D ऐरे बना सकते हैं और x, y, और z पॉइंट्स निकाल सकते हैं। figure() मेथड का उपयोग करके नया फिगर बनाएं या मौजूदा फिगर सक्रिय करें। add_subplot() मेथड का उपयोग करके फिगर में सबप्लॉट व्यवस्था के हिस्से के रूप में ~.axes.Axes जोड़ें। si

  1. Matplotlib फिगर से SVG फ़ाइल एक्सपोर्ट करना Matplotlib फिगर से SVG फ़ाइल एक्सपोर्ट करना

    Matplotlib फिगर से SVG फ़ाइल एक्सपोर्ट करने के लिए, हम निम्नलिखित चरण अपना सकते हैं: फिगर का आकार सेट करें और सबप्लॉट्स के बीच और आसपास पैडिंग एडजस्ट करें। फिगर और सबप्लॉट्स का सेट बनाएं। NumPy का उपयोग करके रैंडम x और y डेटा पॉइंट्स बनाएं। plot() मेथड का उपयोग करके x और y डेटा पॉइंट्स प्लॉ