Güncelleme:
Bu özellik artık yakın zamanda pypi'de yayınladığım proplot matplotlib paketinin bir parçası . Varsayılan olarak, şekiller oluşturduğunuzda etiketler eksenler arasında "paylaşılır".
Orijinal cevap:
Daha sağlam bir yöntem keşfettim:
Bir başlatmaya giden bottom
ve top
kwarg'ları biliyorsanız GridSpec
veya eksenlerinizin Figure
koordinatlarındaki kenar konumlarını biliyorsanız , ilabel konumunu Figure
bazı süslü "dönüştürme" sihriyle koordinatlarda da belirtebilirsiniz . Örneğin:
import matplotlib.transforms as mtransforms
bottom, top = .1, .9
f, a = plt.subplots(nrows=2, ncols=1, bottom=bottom, top=top)
avepos = (bottom+top)/2
a[0].yaxis.label.set_transform(mtransforms.blended_transform_factory(
mtransforms.IdentityTransform(), f.transFigure # specify x, y transform
)) # changed from default blend (IdentityTransform(), a[0].transAxes)
a[0].yaxis.label.set_position((0, avepos))
a[0].set_ylabel('Hello, world!')
... ve etiketin , tıpkı normal gibi, onay etiketleriyle örtüşmesini önlemek için sol-sağa uygun şekilde ayarlandığını görmelisiniz - ama şimdi her zaman tam olarak istenen alt noktalar arasında olacak şekilde ayarlanacaktır .
Dahası, kullanmazsanız bile set_position
, ilabel varsayılan olarak tam olarak rakamın yarısında görünecektir . Tahminimce bunun nedeni, etiket sonunda çizildiğinde, temel koordinat dönüşümünün değişip değişmediğini kontrol etmeden-koordinat matplotlib
için 0.5 kullanmasıdır y
.