在matplotlib python中使用日志比例时,标签和记号将消失

在matplotlib python中使用日志比例时,标签和记号将消失,python,matplotlib,plot,scale,logarithm,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 但当我放大足够远时,标签和标题实际上会返回,但不会返回刻度线。不知道这是否重要,但我想我会

我需要图形的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的friends计算机上测试了该代码,它运行得非常好。所以,我想我的对数秤不喜欢苹果电脑。 不过,有人有什么建议吗?

@ImportanceOfBeingErnest的“更新”

一切都没有改变

尝试使用。比如:

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。这是我唯一能够得到小对数刻度记号的方法,以我想要的方式为我工作…

我插入了你的代码,得到了与我的代码完全相同的东西。我猜这和我的mac电脑有关,因为代码在我朋友的linux上运行得很好。谢谢你的贡献@请尝试添加
matplotlib。打印前使用('TkAgg')
。如果这不起作用,试试“Agg”,也许是“GTK”。运气不好。尝试了所有这些,他们使图形仅显示为白色窗口。@pierre700尝试列出的不同后端。如果这些都不起作用,那么我就猜不出来了。“原木秤不喜欢Mac”-这是一个有趣的理论,但我怀疑你只是安装了一个有缺陷的matplotlib版本。您可以更新matplotlib,看看是否可以修复它。根据您的建议,我重新安装了matplotlib,并检查了我使用的版本(2.2.2)。仍然不走运:/你能用一个可以运行的代码和你从更新版本获得的图像更新你的问题吗?在粗体下面为你添加了一个部分。据我所知,没有任何变化。是的,您似乎没有使用您安装的matplotlib版本,但仍然使用旧版本。