爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 20242|回复: 12

[求助] python怎么画等距不均匀刻度坐标轴

[复制链接]

新浪微博达人勋

发表于 2021-10-5 19:14:39 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
请问用python怎么画y轴这种坐标轴???


QQ截图20211005191354.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-10-5 19:39:16 | 显示全部楼层
这是对数坐标,你可以试试ax.set_yscale('log')这种命令
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-10-6 16:24:05 | 显示全部楼层
MissLH88 发表于 2021-10-5 19:39
这是对数坐标,你可以试试ax.set_yscale('log')这种命令

好的,谢谢,已解决
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-15 13:16:29 | 显示全部楼层
MissLH88 发表于 2021-10-5 19:39
这是对数坐标,你可以试试ax.set_yscale('log')这种命令

您好 麻烦问一下非对数的有没有什么办法?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-15 15:31:50 | 显示全部楼层
OomaulenOo 发表于 2021-10-15 13:16
您好 麻烦问一下非对数的有没有什么办法?

你可以自定义ytick的值,然后ax.set_yticks(ytick),再给定这些tick位置的标注yticklabel,使用ax.set_yticklabels(yticklabel)修改这些位置的label。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-19 10:08:55 | 显示全部楼层
MissLH88 发表于 2021-10-15 15:31
你可以自定义ytick的值,然后ax.set_yticks(ytick),再给定这些tick位置的标注yticklabel,使用ax.set_yti ...

谢谢 你的回答 我表达错了  我是想要刻度值是均匀的 但是间距不等 比如0 10 20 30 40这样的y轴刻度 0-10之间的间距大一些 30-40之间的间距小一些。还是没能解决。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-19 10:42:41 | 显示全部楼层
OomaulenOo 发表于 2021-10-19 10:08
谢谢 你的回答 我表达错了  我是想要刻度值是均匀的 但是间距不等 比如0 10 20 30 40这样的y轴刻度 0-10 ...

https://blog.csdn.net/qq_39232317/article/details/107925982
可以参考一下这个
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-19 11:25:58 | 显示全部楼层
MissLH88 发表于 2021-10-19 10:42
https://blog.csdn.net/qq_39232317/article/details/107925982
可以参考一下这个

这个例子我觉得很奇怪并没有看懂,明明是改变了x的值,第一个图和第二个图完全不相干,不知道美化了个什么。
https://matplotlib.org/stable/gallery/specialty_plots/skewt.html 我是想要类似这样的y轴 刻度值步长是一样的,但是间距不等。而且我是想要跟他相反的y轴,下面间距大,上面间距小。就是没看懂他怎么处理的。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-19 14:50:23 | 显示全部楼层
OomaulenOo 发表于 2021-10-19 11:25
这个例子我觉得很奇怪并没有看懂,明明是改变了x的值,第一个图和第二个图完全不相干,不知道美化了个什 ...

那个例子就说是,你可以根据自己的需要给那些点虚假的x或者y(相当于你定义自己的y轴映射),然后在那些位置赋予label的时候给出真实的标签。
比如说,你想要画出原来等距离的1,2,3,4现在是1,2,30,40;那你要处理2-30之间的数据他们按照一定规则映射到2-3,30-40之间的数据按照一定规则映射到3-4;之后你再设置1,2,3,4这些位置的label是1,2,30,40即可。那个例子是粗暴映射,你可以自己写一个映射,然后使用起来就很方便了。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-19 16:36:01 | 显示全部楼层
MissLH88 发表于 2021-10-19 14:50
那个例子就说是,你可以根据自己的需要给那些点虚假的x或者y(相当于你定义自己的y轴映射),然后在那些 ...

明白了明白了 还挺棒的。非常感谢 我去试试 。python才开始上手小白一个。另外还想请教个问题,我画了这样的六幅子图fig,ax=plt.subplots(nrows=6,ncols=1,figsize=(40,24),sharex=True) ,想统一改变所有y轴的数字标签的字体大小,但是每次只对最后一幅图起作用。于是我在每个子图都加了ax3.set_yticklabels([0,5,10,15,20,25,30,35,40,45],fontproperties = 'Times New Roman',fontsize=35),我觉得很不方便,每次改变数据,这些y值我都得改一下,麻烦问下有什么好方法吗,就是想要所有y轴fontproperties = 'Times New Roman',fontsize=35。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表