我需要图表的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
当我放大到足够远时,标签和标题实际上会返回而不是刻度线。不知道这是否重要,但我想我会把它包括在内。
由于
编辑:事实证明,代码工作正常,而不是在我的Mac笔记本电脑上。我在运行ubuntu的朋友计算机上测试了代码,它运行得很好。所以,我想我的日志尺度不像macs。 还是有人有任何建议吗?
"更新"对于@ImportanceOfBeingErnest
没有任何改变。
Graph produced from my code run with updated mplib
Graph produced from @Engineero 's code run with updated mplib
答案 0 :(得分:1)
尝试将axis.set_yscale
与axis.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。这是我能够以我想要的方式为我提供微小的对数刻度刻度的唯一方法......