如何就地绘制刻度值

时间:2016-02-08 18:30:42

标签: python matplotlib

下面会生成一个图,其中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参数。

1 个答案:

答案 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()

Output

这可能不是最好的方法,但它有效。可能有一种方法可以使用ticker formatters FuncFormatter来执行此操作,例如{{1}}。

This answer有助于使科学记谱法格式正确。