Matplotlib - एक्स-एक्सिस लेबल को नीचे की ओर ले जाएँ, लेकिन एक्स-एक्सिस टिक्स नहीं


109

मैं एक हिस्टोग्राम की साजिश रचने के लिए Matplotlib का उपयोग कर रहा हूं। मेरे पिछले प्रश्न से युक्तियों का उपयोग करते हुए: Matplotlib - प्रत्येक बिन को लेबल करें , मैंने कमोबेश जाने वाले किंक पर काम किया है।

एक अंतिम मुद्दा है - पहले - x- अक्ष लेबल ("समय (मिलीसेकंड में)") को x- अक्ष टिकमार्क (0.00, 0.04, 0.08, 0.12 आदि) के नीचे प्रस्तुत किया जा रहा था।

कोई पैडिंग - एक्सिस लेबल के नीचे के आंकड़े नहीं

जो किंग्स्टन से सलाह का उपयोग करना (ऊपर प्रश्न देखें), मैंने उपयोग करने की कोशिश की:

ax.tick_params(axis='x', pad=30)

हालाँकि, यह दोनों एक्स-अक्ष टिकमार्क (0.00, 0.04, 0.08, 0.12 आदि) को स्थानांतरित करता है, साथ ही साथ एक्स-एक्सिस लेबल ("समय (मिलीसेकंड में)"):

30 पैडिंग - एक्सिस लेबल और टिक मार्क्स दोनों ने मूव किया है

क्या आंकड़ों की तीन पंक्तियों के नीचे केवल एक्स-अक्ष लेबल को स्थानांतरित करने का कोई तरीका है?

Nb: आपको सीधे PNG खोलने की आवश्यकता हो सकती है - छवि पर राइट क्लिक करें, फिर चित्र देखें (FF में), या नए टैब (क्रोम) में छवि खोलें। SO द्वारा की गई छवि आकार ने उन्हें अपठनीय बना दिया है

जवाबों:


196

लेबलपैड पैरामीटर का उपयोग करें:

pl.xlabel("...", labelpad=20)

या इसके बाद सेट करें:

ax.xaxis.labelpad = 20

13

यदि चर ax.xaxis._autolabelpos = सही है, तो matplotlib, (कुछ अंश) के अनुसार ax.py में फ़ंक्शन _update_label_position में लेबल स्थिति सेट करता है:

    bboxes, bboxes2 = self._get_tick_bboxes(ticks_to_draw, renderer)
    bbox = mtransforms.Bbox.union(bboxes)
    bottom = bbox.y0
    x, y = self.label.get_position()
    self.label.set_position((x, bottom - self.labelpad * self.figure.dpi / 72.0))

आप का उपयोग करके टिक्स से स्वतंत्र रूप से लेबल स्थिति सेट कर सकते हैं:

    ax.xaxis.set_label_coords(x0, y0)

यह गलत तरीके से या उपर्युक्त के रूप में लेबलपैड पैरामीटर बदलकर उपर्युक्त सेट करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.