Matplotlib在半月图中禁用指数表示法

时间:2017-10-13 11:53:42

标签: python matplotlib scientific-notation

我们说我有以下代码

import matplotlib.pyplot as plt
plt.figure()
plt.semilogy([0,1],[20,90])
plt.show()

创建了下图:

enter image description here

我想在y轴上禁用科学记数法(所以我希望有20,30,40,60,而不是2x10 ^ 1等)

我已经看过this帖子了,我尝试添加

import matplotlib.ticker
plt.gca().get_yaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())
plt.gca().get_yaxis().get_major_formatter().set_scientific(False)
plt.gca().get_yaxis().get_major_formatter().set_useOffset(False)

但它不会影响结果。我使用的是python 3.5.3和matplotlib 2.1.0。我错过了什么?

1 个答案:

答案 0 :(得分:1)

由于y轴上的刻度不到十年,因此它们是次要刻度,而不是主要刻度。因此,您需要将次格式化程序设置为ScalarFormatter

plt.gca().yaxis.set_minor_formatter(matplotlib.ticker.ScalarFormatter())

完整示例:

import matplotlib.pyplot as plt
import matplotlib.ticker

plt.figure()
plt.semilogy([0,1],[20,90])
plt.gca().yaxis.set_minor_formatter(matplotlib.ticker.ScalarFormatter())
plt.show()

enter image description here