爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2938|回复: 4

如何用python在空间图上绘制柱状图?

[复制链接]

新浪微博达人勋

发表于 2023-1-24 15:54:46 | 显示全部楼层 |阅读模式
20金钱
请问一下各位大佬~,想用python在空间图上绘制柱状图(如下图),有相应的函数或者啥解决办法嘛,求指点迷津! [JGVAU(SO0%7ZTLO88FY@JD.png

最佳答案

查看完整内容

最简单的方法,输出矢量图(或者底色为透明的位图),然后用PPT拼接。如果想纯粹使用编程实现,那就在指定区域绘制子图fig.add_axes(),然后在上面画柱状图,仅保留下方的X轴即可,不过要注意保持尺度一致。 关于位置的选取,可以手动给定(虽然麻烦点,但是最容易),缺点是稍微动下底图,其他都要变。 也可以利用matplotlib和cartopy投影的坐标变化方法,把经纬度坐标转化为投影坐标(在matplotlib中对应数据维度的坐标) ...
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2023-1-24 15:54:47 | 显示全部楼层
最简单的方法,输出矢量图(或者底色为透明的位图),然后用PPT拼接。如果想纯粹使用编程实现,那就在指定区域绘制子图fig.add_axes(),然后在上面画柱状图,仅保留下方的X轴即可,不过要注意保持尺度一致。

关于位置的选取,可以手动给定(虽然麻烦点,但是最容易),缺点是稍微动下底图,其他都要变。

也可以利用matplotlib和cartopy投影的坐标变化方法,把经纬度坐标转化为投影坐标(在matplotlib中对应数据维度的坐标)后,在把数据维度坐标转化到图层(figure)维度坐标,大概就是fig.transFigure.inverted().transfrom(ax.transData.transfrom(proj.transform_point(lon, lat, ccrs.PlateCarree()))),然后根据返回的坐标作为左下角坐标,设置宽高添加子图即可。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-1-25 08:49:43 | 显示全部楼层
本帖最后由 墨然c 于 2023-1-25 08:51 编辑
SolaProject 发表于 2023-1-25 00:37
最简单的方法,输出矢量图(或者底色为透明的位图),然后用PPT拼接。如果想纯粹使用编程实现,那就在指定 ...

!谢谢大佬提供思路!!还有一个小疑惑,如果是设置一个个子坐标的话,那么每一个柱状图的高度,是我人为设定从而来体现不同数据之间的差异嘛
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2023-1-25 22:38:05 | 显示全部楼层
墨然c 发表于 2023-1-25 08:49
!谢谢大佬提供思路!!还有一个小疑惑,如果是设置一个个子坐标的话,那么每一个柱状图的高度,是我人为 ...

设置统一大小的子图,然后限定y轴范围即可
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2023-2-22 15:51:50 | 显示全部楼层
请问  老师问题解决了吗?
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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