简体   繁体   中英

Inconsistent font size for scientific notation in axis

I'm trying to make a plot for which the x axis will show in scientific notation. The way I found how to do so is to use the ticklabel_format function. Unfortunately this does not respect the font size I assign to the numbers shown in the axis, see image below:

在此处输入图片说明

The 1e-12 and 1e4 are displayed in a different font size even though I set equal label sizes.

How could I fix this? (A MWE is below)

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0.0, 10000.0, 10.)
s = np.sin(np.pi*t)*np.exp(-t*0.0001)

fig, ax = plt.subplots()

ax.tick_params(axis='both', which='major', labelsize=7)
plt.ticklabel_format(style='sci', axis='x', scilimits=(0,0), labelsize=7)
plt.plot(t,s)

plt.show()

According to ticklabel_format documentation , the function does not accept labelsize parameter.

You can change the font size using matplotlib.rc :

plt.rc('font', size=7)

在此处输入图片说明

I guess it's because that scientific representation is not treated as tick label, you can use:

import matplotlib
matplotlib.rc('font', size=7)

or

matplotlib.rcParams['font.size']=7

and remove labelsize=7 in ax.tick_params

我认为这会对您有所帮助,而无需更改全局设置:

ax.yaxis.get_offset_text().set_fontsize(size)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM