在 Matplotlib 中更改科学记数法刻度标签的大小

Changing size of scientific notation tick labels in Matplotlib

我正在将插图绘制成更大的图形,但在调整插图两个轴的刻度大小时遇到​​问题。

我已经看过这个问题 Matplotlib make tick labels font size smaller 并设法调整了刻度的大小。

但是,我的刻度是在两个轴上使用科学计数法(自动)绘制的,虽然这不是问题,但“1e-7”标签不会随其余刻度调整大小,而是与 x 叠加轴标签。

谁能告诉我如何更改“1e-7”的大小?我找不到办法!

这是导致我出现问题的代码和图形。

logN = lognorm(s=[sigma], loc=0, scale=exp(mu))
domain = np.linspace(logN.ppf(0.01), logN.ppf(0.99), 250)

ax2.set_title('uncertainty', size = 'x-small')
ax2.set_xlabel('exceedance frequency', size = 'x-small')
ax2.set_ylabel('probability', size= 'x-small')
ax2.tick_params( axis = 'both', which ='major', labelsize = 7)
ax2.plot(domain, logN.pdf(domain))

一种方法是使用ax.yaxis.get_offset_text()方法来return文本对象,然后用set_fontsize(7)设置它。尝试:

tx = ax2.xaxis.get_offset_text()
tx.set_fontsize(7)

或者,如果您想删除偏移量,然后将它们添加到您选择的位置,请使用:

tx.set_visible(False)
ax2.text(1.1, -.1, "1e-7", fontsize=7)

您可能必须 fiddle 手动调整 x 和 y 位置,直到它看起来不错。