下面会生成一个图,其中y刻度为-1, -0.5, 0, 0.5, 1
,并且它们的缩放比例绘制在其他地方,如何强制matplotlib将tics原地绘制为-1e-9, -0.5-e9...
,所以我不会这样做必须搜索图的其他部分,以便对刻度值进行可能的修正?
import matplotlib.pyplot as plot
plot.plot([0, 1e-9, 0, -1e-9])
plot.show()
Google引导我plot.ticklabel_format(useOffset = False)
,但不幸的是,它没有useScaling
参数。
答案 0 :(得分:1)
执行此操作的一种方法是获取y轴刻度值,根据需要对其进行格式化,然后将它们作为y轴刻度标签添加回绘图。
import matplotlib.pyplot as plt
plt.plot([0, 1e-9, 0, -1e-9])
# pull out values for y-axis ticks
yticks = plt.gca().get_yticks()
# format new labels
new_yticklabels = ['{:0=4.2f}e-9'.format(tick/1e-9) for tick in yticks]
# set new labels
plt.gca().set_yticklabels(new_yticklabels)
plt.show()
这可能不是最好的方法,但它有效。可能有一种方法可以使用ticker formatters FuncFormatter
来执行此操作,例如{{1}}。
This answer有助于使科学记谱法格式正确。