Python Nebenhandlungen, wobei der Raum für gemeinsame Achse Etiketten
Ich habe den folgenden code, der vier Geschichten in einem Bild:
f = figure( figsize=(7,7) )
f.add_axes([0.2,0.175,0.75,0.75])
f.subplots_adjust(left=0.15)
f.clf()
ax = f.add_subplot(111)
ax1 = f.add_subplot(221)
ax2 = f.add_subplot(222)
ax3 = f.add_subplot(223)
ax4 = f.add_subplot(224)
ax.xaxis.set_major_formatter( NullFormatter() )
ax.yaxis.set_major_formatter( NullFormatter() )
ax2.xaxis.set_major_formatter( NullFormatter() )
ax2.yaxis.set_major_formatter( NullFormatter() )
ax1.xaxis.set_major_formatter( NullFormatter() )
ax4.yaxis.set_major_formatter( NullFormatter() )
f.subplots_adjust(wspace=0,hspace=0)
ax1.plot(tbins[0:24], mean_yszth1, color='r', label='mean', marker='.', lw=3)
ax2.plot(tbins[0:24], mean_ysz1, color='r', label='mean', marker='.', lw=3)
ax3.plot(tbins[0:24], mean_yszth2, color='r', label='mean', marker='.', lw=3)
ax4.plot(tbins[0:24], mean_ysz2, color='r', label='mean', marker='.', lw=3)
ax1.set_xlim(0,12)
ax1.set_ylim(-0.5,0.5)
ax2.set_xlim(0,12)
ax2.set_ylim(-0.5,0.5)
ax3.set_xlim(0,12)
ax3.set_ylim(-0.5,0.5)
ax4.set_xlim(0,12)
ax4.set_ylim(-0.5,0.5)
ax.set_xlabel(r"$\mathrm{Time\ since\ last\ merger\ (Gyr)}$")
ax.set_ylabel(r"$\mathrm{\Delta Y_{SZ}/Y_{SZ}}$")
Das Ergebnis sieht wie folgt aus:
Wie Sie sehen können, die Achsenbeschriftungen überschneiden sich mit den Zecken. Ich möchte die gemeinsame Achse Etiketten entfernt von den Achsen ein wenig. Ich kann nicht herausfinden, wie man am besten, dies zu tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
labelpad
parameter derset_ylabel
undset_xlabel
Methoden:Dies ist es, was ich mit labelpad 50 (x) 60 (y). Musste ich manuell ändern Abbildung Margen, weil die Etiketten wurden außerhalb der Figur-Rahmen bei Verwendung der default-Konfiguration.
Bearbeiten
Aus Ihren Kommentaren, es scheint, Sie könnte verwenden eine sehr alte version von matplotlib. Labelpad parameter wurde in matplotlib aus vielen Versionen vor, aber der Weg zu der Einstellung, es könnte auch anders sein (weiß ich nicht sicher).
Im web fand ich einige Kommentare, die auf dieser Verwendung:
auch ich habe es erlebt, wie:
ax.set_ylabel(ylabel, labelpad=10)
. Aber ich bekomme eine Fehlermeldung mit dem InhaltUnknown property labelpad
. Vielleicht ist meine version von Python ist zu alt?/scisoft/lib/python2.5/site-packages/matplotlib/axes.pyc in set_xlabel(self, xlabel, fontdict, **kwargs)
. Sieht aus wie es keine labelpad in der version, die ich verwende.ax.xaxis.LABELPAD = 30
funktioniert. Vielen, vielen Dank!