Python Matplotlib:禁用日志打印中的十次幂

Python Matplotlib:禁用日志打印中的十次幂,python,matplotlib,Python,Matplotlib,有没有一种简单的方法可以让matplotlib在对数图中不显示十的幂,而只显示数字?也就是说,代替[10^1,10^2,10^3]显示[10,100,1000]?我不想改变记号的位置,只想去掉十的幂 这就是我目前拥有的: 我可以通过xticks更改标签本身,但是我会得到与y记号标签不匹配的字体或大小。我用TeX来写这篇文章。我尝试了以下方法: xx, locs = xticks() ll = [r'\rm{%s}' % str(a) for a in xx] xticks(xx, ll) 这

有没有一种简单的方法可以让matplotlib在对数图中不显示十的幂,而只显示数字?也就是说,代替
[10^1,10^2,10^3]
显示
[10,100,1000]
?我不想改变记号的位置,只想去掉十的幂

这就是我目前拥有的:

我可以通过
xticks
更改标签本身,但是我会得到与y记号标签不匹配的字体或大小。我用TeX来写这篇文章。我尝试了以下方法:

xx, locs = xticks()
ll = [r'\rm{%s}' % str(a) for a in xx]
xticks(xx, ll)
这将产生以下结果:

在这个特殊的例子中,我可以使用相同的LaTeX roman字体,但大小和外观与y轴上的不同。另外,如果我在matplotlib中使用不同的LaTeX字体,这将是一个问题

有没有更灵活的方法来关闭“十”符号的电源?

使用:

from matplotlib import rc
rc('text', usetex=True)
rc('font', size=20)

import matplotlib.pyplot as plt
from matplotlib.ticker import ScalarFormatter

fig = plt.figure(figsize=(10, 6))
ax = fig.add_subplot(111)
ax.semilogx(range(100))
ax.xaxis.set_major_formatter(ScalarFormatter())
plt.show()