Data Visualization

Matplotlib सबप्लॉट आकार में महारथ: तीन शक्तिशाली तरीके

Spread the love

मैटप्लॉटलिब विज़ुअलाइज़ेशन बनाने के लिए शक्तिशाली उपकरण प्रदान करता है, और प्रभावी संचार के लिए सबप्लॉट आकारों को अनुकूलित करना महत्वपूर्ण है। यह लेख मैटप्लॉटलिब में अलग-अलग आकारों वाले सबप्लॉट बनाने के तीन तरीकों का पता लगाता है, प्रत्येक के लिए स्पष्ट उदाहरण और स्पष्टीकरण प्रदान करता है।

विषयवस्तु की तालिका

लचीले सबप्लॉट लेआउट के लिए gridspec का उपयोग करना

matplotlib.gridspec मॉड्यूल अलग-अलग आकार के सबप्लॉट बनाने के लिए सबसे लचीला तरीका प्रदान करता है। यह आपको एक ग्रिड को परिभाषित करने और फिर उस ग्रिड के विशिष्ट क्षेत्रों में सबप्लॉट असाइन करने की अनुमति देता है, height_ratios और width_ratios का उपयोग करके उनके सापेक्ष आकारों को नियंत्रित करता है।


import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

fig = plt.figure(figsize=(10, 6))
gs = gridspec.GridSpec(nrows=2, ncols=2, height_ratios=[2, 1], width_ratios=[1, 2])

ax1 = fig.add_subplot(gs[0, 0])
ax2 = fig.add_subplot(gs[0, 1])
ax3 = fig.add_subplot(gs[1, :])  # दोनों कॉलम पर विस्तार

ax1.plot([1, 2, 3], [4, 5, 6])
ax2.plot([1, 2, 3], [6, 4, 5])
ax3.plot([1, 2, 3, 4, 5], [2, 4, 1, 3, 5])

plt.tight_layout()
plt.show()

यह कोड ऊपर की पंक्ति नीचे की पंक्ति से दोगुनी ऊँची और दाहिने कॉलम बाएँ कॉलम से दोगुना चौड़ा होने के साथ 2×2 ग्रिड बनाता है। फिर प्रत्येक सबप्लॉट को उसके निर्दिष्ट क्षेत्र में जोड़ा जाता है।

संक्षिप्त नियंत्रण के लिए gridspec_kw का लाभ उठाना

सरल लेआउट के लिए, plt.subplots() के भीतर gridspec_kw तर्क एक अधिक संक्षिप्त विकल्प प्रदान करता है। यह स्पष्ट gridspec ऑब्जेक्ट निर्माण की आवश्यकता के बिना सीधे gridspec कार्यक्षमता को एकीकृत करता है।


import matplotlib.pyplot as plt

fig, axes = plt.subplots(2, 2, figsize=(10, 6), gridspec_kw={'height_ratios': [2, 1], 'width_ratios': [1, 2]})

axes[0, 0].plot([1, 2, 3], [4, 5, 6])
axes[0, 1].plot([1, 2, 3], [6, 4, 5])
axes[1, 0].plot([1, 2, 3], [2, 4, 1])
axes[1, 1].plot([1, 2, 3], [5, 3, 1])

plt.tight_layout()
plt.show()

यह gridspec उदाहरण के समान परिणाम प्राप्त करता है लेकिन एक क्लीनर सिंटैक्स के साथ। ध्यान दें कि यहां प्रत्येक सबप्लॉट एकल सेल पर कब्जा करता है; कई कोशिकाओं पर विस्तार करने के लिए अधिक लचीले gridspec दृष्टिकोण की आवश्यकता होती है।

subplot2grid के साथ सटीक प्लेसमेंट

subplot2grid फ़ंक्शन पंक्ति और स्तंभ सूचकांकों का उपयोग करके सबप्लॉट प्लेसमेंट पर सटीक नियंत्रण प्रदान करता है, और ग्रिड के भीतर प्रत्येक सबप्लॉट के आकार और स्थिति को परिभाषित करने के लिए rowspan और colspan विशेषताएँ।


import matplotlib.pyplot as plt

fig = plt.figure(figsize=(10, 6))

ax1 = plt.subplot2grid((2, 2), (0, 0), rowspan=1, colspan=1)
ax2 = plt.subplot2grid((2, 2), (0, 1), rowspan=1, colspan=2)
ax3 = plt.subplot2grid((2, 2), (1, 0), rowspan=1, colspan=2)

ax1.plot([1, 2, 3], [4, 5, 6])
ax2.plot([1, 2, 3], [6, 4, 5])
ax3.plot([1, 2, 3, 4, 5], [2, 4, 1, 3, 5])

plt.tight_layout()
plt.show()

शक्तिशाली होने के बावजूद, जटिल लेआउट के लिए subplot2grid कम पठनीय हो सकता है। अपनी आवश्यकताओं के लिए सबसे उपयुक्त विधि चुनें: लचीलेपन के लिए gridspec, संक्षिप्त सरल लेआउट के लिए gridspec_kw, और व्यक्तिगत सबप्लॉट पदों पर सटीक नियंत्रण के लिए subplot2grid

ओवरलैपिंग तत्वों को रोकने और एक स्वच्छ और पेशेवर उपस्थिति सुनिश्चित करने के लिए हमेशा plt.tight_layout() का उपयोग करें।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *