我对刻度标签的默认科学格式不完全满意。例如,
import numpy as np
import pylab
pylab.rcParams['text.usetex'] = True
pylab.ticklabel_format(style='sci')
pylab.figure(1)
pylab.clf()
pylab.scatter(range(10),np.linspace(-21.305,-21.300,10))
pylab.show()
给出一张带有表格的标签的图片
这里的错误首先是-2.1298x10^1
应该在我看来-21.298
,而且一般来说我只希望看到只能用3整除的指数(10^3
,10^6
等,在10^0
的情况下,我想将其隐藏在-21.298
)中。
此外,我希望代替0.000
和-0.002
等0
和-2
,以便将指数10^-3
包括在内-21.298
以便总共将标记符号
x 10^-3 - 21.298
0
-2
-4
-6
现在,我错过了一些简单的方法吗?提前谢谢。
答案 0 :(得分:1)
您可以使用ScalarFormatter
:
from matplotlib.ticker import ScalarFormatter
sf = ScalarFormatter()
sf.set_scientific(True)
sf.set_powerlimits((-0.00001, 0.00001))
ax = pylab.gca()
ax.yaxis.set_major_formatter(sf)
pylab.show()
您可以通过将数字传递给format_data()
来测试格式化程序对给定数字的作用:
sf.format_data(0.002)
#'2{\\times}10^{-3}'