Matplotlib में टेक्स्ट को ऑटो-आकार देने के लिए टाइट लेआउट (autolayout=True) सक्षम करें और टिक लेबल्स को घुमाएं ताकि वे ओवरलैप न हों।
चरण
- फिगर आकार सेट करें और पैडिंग समायोजित करें
- 0-9 रेंज के डेटा बिंदु प्लॉट करें
- लेबल्स की सूची बनाएं (लंबे लेबल्स)
xticks()से टिक्स और लेबल्स X-अक्ष पर 30 डिग्री घुमाकर रखेंplt.show()से प्रदर्शित करें
उदाहरण
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
plt.plot(range(10))
# लंबे लेबल्स (7 बार दोहराया गया)
labels = [7 * repr(i) for i in range(10)]
# ['0000000', '1111111', '2222222', ...]
# टिक्स और लेबल्स 30 डिग्री घुमाव के साथ
plt.xticks(range(10), labels, rotation=30)
plt.title('ऑटो-लेआउट के साथ घुमाए गए लंबे लेबल्स')
plt.show()
आउटपुट
प्लॉट जहां X-अक्ष लेबल्स (लंबे स्ट्रिंग्स) 30 डिग्री घुमाए गए हैं और ऑटो-लेआउट द्वारा काटे नहीं गए हैं।
मुख्य तकनीकें
| तकनीक | उद्देश्य |
|---|---|
autolayout=True | सबप्लॉट पैरामीटर्स स्वचालित रूप से समायोजित करता है |
rotation=30 | लेबल्स घुमाकर ओवरलैप रोकता है |
ha='right', rotation_mode='anchor' | घुमाए गए लेबल्स का संरेखण सुधारता है |
plt.tight_layout() | मैन्युअल लेआउट समायोजन |
constrained_layout=True | आधुनिक, बेहतर स्वचालित लेआउट (फिगर बनाते समय) |
उन्नत: डायनामिक फॉन्ट आकार
# फिगर आकार के आधार पर फॉन्ट आकार समायोजित करें
fig, ax = plt.subplots(figsize=(10, 4))
ax.plot(range(20))
labels = [f"Label {i}" for i in range(20)]
ax.set_xticks(range(20))
ax.set_xticklabels(labels, rotation=45, ha='right')
# फॉन्ट आकार स्वचालित रूप से समायोजित करने के लिए
plt.tight_layout()
# या मैन्युअल
for label in ax.get_xticklabels():
label.set_fontsize(max(6, 12 - len(label.get_text()) // 2))
नोट
"ऑटो-आकार टेक्स्ट" आमतौर पर लेआउट समायोजन और रोटेशन को संदर्भित करता है, वास्तविक फॉन्ट आकार डायनामिक स्केलिंग के लिए नहीं (जिसके लिए कस्टम कोड आवश्यक है)।