Matplotlib对数轴蜱

时间:2018-06-18 14:38:40

标签: python matplotlib

我有这个简单的代码来绘制一些值:

ticks = [0, 1e-12, 1e-10, 1e-8, 1e-6, 1e-4]
values = range(1, 7)

plt.plot(ticks, values)
plt.xscale('log')

plt.show()

enter image description here

问题是点(0,1)没有被绘制。我尝试通过添加一行代码来解决这个问题:

ticks = [0, 1e-12, 1e-10, 1e-8, 1e-6, 1e-4]
values = range(1, 7)

plt.plot(ticks, values)
plt.xscale('log')
plt.xticks(ticks) <------- added this line --------

plt.show()

但结果是:

enter image description here

这绝对不是我想要的。我的目标是正确绘制点(0,1)并在x轴上设置自定义刻度,即ticks中的值(0,1e-12,1e-10,1e-8,1e-) 6,1e-4)

我该怎么做?我环顾四周,没有找到答案

1 个答案:

答案 0 :(得分:1)

我解决了改变以下问题:

plt.xscale('log')

这一行:

plt.xscale('symlog', linthreshx=1e-12)

最终产生了预期的结果:

enter image description here