सबसे पहले; यह देखते हुए कि आपने figsize
को (2,2) के रूप में निर्दिष्ट किया है और ax
चौड़ाई और ऊंचाई दोनों का 80% पर कब्जा कर लिया है, तो आपके पास बहुत कम स्पेस को टिकलबेल पैड करने के लिए छोड़ दिया गया है। यह आंकड़े के उदाहरणों पर टिकलबेल को "काट" सकता है। यह आसानी से "निर्धारित" किया जा सकता है या तो
- निर्दिष्ट करना बड़ा
figsize
ax
(2,2) पर कम जगह आकार आंकड़ा पर कब्जा बनाने से ticklabels के लिए
- उपयोग छोटे fontsize
या इनमें से कोई भी संयोजन। एक और, मेरी राय में बेहतर, इस "समस्या" का समाधान Axes
की सीमाओं को निर्दिष्ट करने के बजाय एक सबप्लॉट का उपयोग करना है;
ax = fig.add_subplot(111, polar=True, axisbg='#d5de9c')
इस रूप में यह विधि tight_layout()
जो स्वचालित रूप से आंकड़ा लेआउट अच्छी तरह से सभी तत्वों को शामिल करने के लिए कॉन्फ़िगर करता है उपयोग करने के लिए संभव बनाता है।
फिर असली समस्या पर हाथ से; पैडिंग PolarAxes
पर आप अन्य चीजों के साथ, थेटा-टिक के रेडियल प्लेसमेंट को सेट कर सकते हैं। यह ध्रुवीय अक्ष त्रिज्या के अंश को निर्दिष्ट करके किया जाता है जहां आप PolarAxes
की set_thetagrids()
विधि के frac
पैरामीटर के तर्क के रूप में टिकलबल्स को एक तर्क के रूप में रखना चाहते हैं। तर्क धुरी के त्रिज्या का एक अंश होना चाहिए जहां आप टिकलबेल रखना चाहते हैं। अर्थात। frac
< 1 के लिए टिकलबेल अक्ष के अंदर रखा जाएगा, जबकि frac
> 1 के लिए उन्हें अक्ष के बाहर रखा जाएगा।
import numpy as np
from matplotlib.pyplot import figure, show, grid, tight_layout
# make a square figure
fig = figure(figsize=(2, 2))
ax = fig.add_subplot(111, polar=True, axisbg='#d5de9c')
ax.set_yticklabels([])
r = np.arange(0, 3.0, 0.01)
theta = 2*np.pi*r
ax.plot(theta, r, color='#ee8d18', lw=3)
ax.set_rmax(2.0)
# tick locations
thetaticks = np.arange(0,360,45)
# set ticklabels location at 1.3 times the axes' radius
ax.set_thetagrids(thetaticks, frac=1.3)
tight_layout()
show()
आपको लगता है कि सबसे अच्छा अपनी आवश्यकताओं के लिए अनुकूल है एक मूल्य को खोजने के लिए frac
के लिए अलग मान प्रयास करना चाहिए:
आपका कोड तो कुछ इस तरह हो सकता है।
यदि आप उपरोक्त पैरामीटर frac
पर कोई मान निर्दिष्ट नहीं करते हैं, यानी frac
में डिफ़ॉल्ट मान None
है, तो कोड नीचे एक प्लॉट आउटपुट करता है। ध्यान दें कि साजिश का त्रिज्या बड़ा है, क्योंकि उपरोक्त उदाहरण में टिकलबेल "उतनी जगह पर कब्जा नहीं करते हैं"।
वाह, एक अद्भुत स्पष्टीकरण! आपका बहुत बहुत धन्यवाद! – dimka
क्या आप जानते हैं कि डिफ़ॉल्ट 'frac' क्या है? – Annan
@ अन्नन [इस] से [https://github.com/matplotlib/matplotlib/blob/ff31d67a8103620221a3eeadeb985e8268a7d934/doc/users/whats_new.rst#enhancements-to-polar-plot) ऐसा लगता है कि 'frac' बहिष्कृत है। "[...] नतीजतन, 'frac' तर्क .olarAxes।set_thetagrids अब लागू नहीं है। टिक पैडिंग को 'पैड' तर्क के साथ संशोधित किया जा सकता है .एक्सिस.tick_params या .Axis.set_tick_params। " – hooy