我们说我有以下代码
import matplotlib.pyplot as plt
plt.figure()
plt.semilogy([0,1],[20,90])
plt.show()
创建了下图:
我想在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。我错过了什么?
答案 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()