在matplotlib python中使用对数比例时,标签和刻度线标记消失

时间:2018-06-12 20:55:32

标签: python matplotlib plot scale logarithm

我需要图表的y轴在对数刻度上。然而,当我这样做时,y轴'标签,刻度线和标题消失。

plt.figure(2)
plt.semilogy(data2[0, :, 0], sli)
plt.xlabel('n-value')
plt.ylabel('Intensity')
plt.title('Intensity vs. n-shell')
plt.show()

sli值的范围为1.0e-21到1.0e-8

I'm not cool enough to post images

当我放大到足够远时,标签和标题实际上会返回而不是刻度线。不知道这是否重要,但我想我会把它包括在内。

!still not cool enough

由于

编辑:事实证明,代码工作正常,而不是在我的Mac笔记本电脑上。我在运行ubuntu的朋友计算机上测试了代码,它运行得很好。所以,我想我的日志尺度不像macs。 还是有人有任何建议吗?

"更新"对于@ImportanceOfBeingErnest

没有任何改变。

Graph produced from my code run with updated mplib

Graph produced from @Engineero 's code run with updated mplib

1 个答案:

答案 0 :(得分:1)

尝试将axis.set_yscaleaxis.tick_params一起使用。类似的东西:

fig = plt.figure(2)
axis = fig.add_subplot(111)
axis.plot(data2[0, :, 0], sli)
axis.set_yscale('log', nonposy='clip')
axis.tick_params(axis='y', which='minor', colors='black')
axis.set_xlabel('n-value')
axis.set_ylabel('Intensity')
axis.set_title('Intensity vs. n-shell')
plt.show()

基本上使用axis API。这是我能够以我想要的方式为我提供微小的对数刻度刻度的唯一方法......