首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在matplotlib python中使用对数刻度时,标签和刻度线消失

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

Stack Overflow用户
提问于 2018-06-13 04:55:32
回答 1查看 875关注 0票数 0

我需要我的图形的y轴在对数尺度上。但是,当我这样做时,y轴的标签、刻度线和标题就消失了。

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2018-06-13 05:21:35

尝试在axis.tick_params中使用axis.set_yscale。类似于:

代码语言:javascript
复制
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接口。这是我唯一能够让小的对数刻度刻度线以我想要的方式工作的方式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50825707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档