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

Ell*_*lle 2 plot matplotlib insets

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

我看过这个问题Matplotlib make tick labels font size less并设法调整刻度大小。

然而,我的刻度是在两个轴上使用科学记数法绘制的(自动),虽然这不是问题,但“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))
Run Code Online (Sandbox Code Playgroud)

引起问题的插图

aor*_*orr 5

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

tx = ax2.xaxis.get_offset_text()
tx.set_fontsize(7)
Run Code Online (Sandbox Code Playgroud)

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

tx.set_visible(False)
ax2.text(1.1, -.1, "1e-7", fontsize=7)
Run Code Online (Sandbox Code Playgroud)

您可能需要手动调整 x 和 y 位置,直到看起来不错为止。