मैटप्लॉटलिब विज़ुअलाइज़ेशन बनाने के लिए शक्तिशाली उपकरण प्रदान करता है, और प्रभावी संचार के लिए सबप्लॉट आकारों को अनुकूलित करना महत्वपूर्ण है। यह लेख मैटप्लॉटलिब में अलग-अलग आकारों वाले सबप्लॉट बनाने के तीन तरीकों का पता लगाता है, प्रत्येक के लिए स्पष्ट उदाहरण और स्पष्टीकरण प्रदान करता है।
विषयवस्तु की तालिका
- लचीले सबप्लॉट लेआउट के लिए
gridspec
का उपयोग करना - संक्षिप्त नियंत्रण के लिए
gridspec_kw
का लाभ उठाना subplot2grid
के साथ सटीक प्लेसमेंट
लचीले सबप्लॉट लेआउट के लिए 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()
का उपयोग करें।