मैं अंत में एक समाधान प्रदान, लेकिन पहले मैं जो तरीका सफलता के लिए नेतृत्व नहीं करता है बताओ।
मैं हाल ही में इस मुद्दे पर दोबारा गौर किया है, और, विभिन्न समाधान की कोशिश कर रहा अर्थात लगभग सभी समन्वय प्रणाली अलग के बीच परिवर्तनों के संभव संयोजनों की कोशिश कर रहा है, और tight_layout()
के साथ अपने रिश्ते के साथ काफी कुछ समय बिताया। मैंने केवल backend_pdf
के साथ प्रयोग किया, इसलिए मैं इंटरैक्टिव मीडिया के बारे में नहीं बता सकता। लेकिन संक्षेप में, मेरा निष्कर्ष यह है कि इससे कोई फर्क नहीं पड़ता कि आप पदों को खोजने और उन्हें बदलने की कोशिश कैसे करते हैं, अक्ष स्तरों को संरेखित करने के लिए इस स्तर पर संभव नहीं है। मुझे लगता है कि किसी भी तरह से यह संभव होना चाहिए, उदाहरण के लिए आंतरिक रूप से matplotlib subplots के अक्षों को संरेखित करने में सक्षम है। केवल पीडीएफ फाइल में दो बार ड्राइंग और inbetween नीचे की तरह कुछ कर रही के साथ, मैं बेहतर स्थान प्राप्त कर सकते थे, लेकिन अभी भी गठबंधन नहीं:
# sorry for the `self`, this is from a class
def align_x_labels(self):
self.lowest_ax = min(self.axes.values(),
key = lambda ax: ax.xaxis.label.get_position()[1])
self.lowest_xlab_dcoo = self.lowest_ax.transData.transform(
self.lowest_ax.xaxis.label.get_position())
list(
map(
lambda ax: \
ax.xaxis.set_label_coords(
self.fig.transFigure.inverted().transform(
ax.transAxes.transform((0.5, 0.5)))[0],
self.fig.transFigure.inverted().transform(
self.lowest_xlab_dcoo)[1],
transform = self.fig.transFigure
),
self.axes.values()
)
)
यह एक शर्म की बात है इस तरह के एक बुनियादी कार्यक्षमता हासिल नहीं किया जा सकता है, और यह है अस्पष्ट कैसे विभिन्न समन्वय रिक्त स्थान बदल रहे हैं और साजिश के विभिन्न चरणों में कैसे रद्द किया गया है। मैं इसकी स्पष्ट व्याख्या देखने के लिए बहुत सराहना करता हूं, क्योंकि matplotlib webpage केवल आर्किटेक्चर को रेखांकित करता है, सरल मामलों को प्रस्तुत करता है, लेकिन इस तरह की स्थितियों को समझाने में विफल रहता है। इसके अलावा मुझे आश्चर्य है कि समन्वय स्वीकार करने या वापस करने के तरीके उनके डॉक्टरों में नहीं बताते हैं कि किस तरह के निर्देशांक हैं। अंत में मुझे बहुत उपयोगी this tutorial मिला।
समाधान
अंत में, बजाय परिवर्तनों के साथ खिलवाड़ की, मैं GridSpec
शून्य ऊंचाई और अदृश्य कुल्हाड़ियों (समान के लिए एक अतिरिक्त पंक्ति y अक्ष लेबल के लिए एक शून्य चौड़ाई स्तंभ के साथ किया जा सकता है में बनाया)। फिर मैंने इन सबप्लॉट्स के लिए लेबल जोड़े, verticalalignment
को top
पर सेट किया।
# get one of the zero height phantom subplots to `self.ax`:
self.get_subplot(i, 1)
# set empty ticklabels:
self.ax.xaxis.set_ticklabels([])
self.ax.yaxis.set_ticklabels([])
# set the axis label:
self.ax.set_xlabel(labtext, fontproperties = self.fp_axis_lab)
# and this is matter of aesthetics
# sometimes bottom or center might look better:
self.ax.xaxis.label.set_verticalalignment('top')
जो आप यहां वर्णित करना चाहते हैं: http://matplotlib.org/faq/howto_faq।एचटीएमएल # संरेखण-my-ylabels-over-multiple-subplots –