विस्तारित लीजेंड को समायोजित करने के लिए चित्र बॉक्स का आकार बदलना
मैटप्लोटलिब में लीजेंड को अक्ष के बाहर ले जाते समय, एक चुनौती का सामना करना पड़ता है जहां लीजेंड फिगर बॉक्स से काटा जा सकता है। यह समस्या तब उत्पन्न होती है जब कथा कथानक क्षेत्र की सीमा से परे विस्तारित होती है। परंपरागत रूप से, बड़े लेजेंड को समायोजित करने के लिए अक्ष को समायोजित करना अनुशंसित समाधान रहा है, लेकिन इसके परिणामस्वरूप डेटा का आकार कम हो सकता है, जिससे इसकी व्याख्या करना अधिक कठिन हो जाएगा।
चित्रा बॉक्स का गतिशील आकार बदलना
इस समस्या को हल करने के लिए, प्रस्तावित समाधान डेटा आकार में बदलाव किए बिना विस्तारित किंवदंती को समायोजित करने के लिए गतिशील रूप से आकृति बॉक्स का आकार बदलना है। यह व्यवहार R और LaTeX में देखा गया है लेकिन Python में तुरंत स्पष्ट नहीं था।
चित्रा बॉक्स को गतिशील रूप से आकार देने के लिए कोड
इस गतिशील आकार को पूरा करने के लिए सुझाया गया कोड इस प्रकार है इस प्रकार है:
fig.savefig('samplefigure', bbox_extra_artists=(lgd,), bbox_inches='tight')
इस कोड में, lgd लेजेंड ऑब्जेक्ट का प्रतिनिधित्व करता है। bbox_extra_artists=(lgd,) को निर्दिष्ट करके, हम सेवफिग को लीजेंड में फिट होने के लिए फिगर बॉक्स को गतिशील रूप से समायोजित करने की अनुमति देते हैं।
कॉम्प्लेक्स लीजेंड के साथ उदाहरण
यहां एक उदाहरण दिया गया है एक जटिल कथा:
import matplotlib.pyplot as plt
import numpy as np
# Create figure and subplot
fig = plt.figure(1)
ax = fig.add_subplot(111)
# Plot data and create legend
ax.plot(x, np.sin(x), label='Sine')
ax.plot(x, np.cos(x), label='Cosine')
ax.plot(x, np.arctan(x), label='Inverse tan')
lgd = ax.legend(loc='upper center', bbox_to_anchor=(0.5,-0.1))
# Add arbitrary text for testing
text = ax.text(-0.2,1.05, "Aribitrary text", transform=ax.transAxes)
# Set title and grid
ax.set_title("Trigonometry")
ax.grid('on')
# Save figure with dynamic resizing
fig.savefig('samplefigure', bbox_extra_artists=(lgd,text), bbox_inches='tight')
यह कोड एक जटिल किंवदंती के साथ एक प्लॉट उत्पन्न करता है जो अक्ष क्षेत्र से परे तक फैला हुआ है। Bbox_extra_artists पैरामीटर लीजेंड को समायोजित करने के लिए फिगर बॉक्स को समायोजित करता है, जिसके परिणामस्वरूप संपूर्ण लीजेंड प्रदर्शित होता है। सरलीकृत। निम्नलिखित आदेश अब पर्याप्त है:
plt.savefig('x.png', bbox_inches='tight')
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3