爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3237|回复: 1

[混合编程] IDL之绘制饼图方案

[复制链接]

新浪微博达人勋

发表于 2019-6-4 10:26:42 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 15195775117 于 2019-6-4 10:31 编辑

飞鸽截图20190604100624.png
IDL没有绘制饼图的函数,作为一门以可视化见称的语言,不能不说是一个缺憾。
最近需要绘制极坐标图,距离、方位是位置参量,预想效果如上图,颜色代表值的大小。

绘制方案1
图中每个“扇框”以四边形代替,用polygon函数一个一个绘制, 飞鸽截图20190604103018.png
实践证明,随着循环的进行,新扇框叠加的速度越来越慢,上百之后就很慢了,但我一次就要画7万个,
时间成本和内存成本极大,此方案不可行!
绘制方案2
python有pie方法可绘制饼图,以IDL8.5引入python,
IDL的help里的“IDL to Python Bridge”项有案例参考,
飞鸽截图20190604102122.png 飞鸽截图20190604102136.png
但根据这个案例和网上的资料,python的pie似乎只能画扇形的图,不能在径向分段,
要实现分段,我想着可以用小圆盖大圆的办法,该方案似乎可行,
不过,matplotlib的语法我还没学,存在开发成本。
绘制方案3
堆叠极坐标下的伪彩线,线之间的间隙可以通过调整图的大小来消除,
代码:
R=fltarr(1000)
theta=findgen(1000)/1000*2*!pi
for i=0,20 do begin
  fig=plot(r+i,theta,/polar,rgb_table=33,thick=100,/overplot,$
    dimensions=[600,600],xrange=[-21,21],yrange=[-21,21],$
    axis_style=0)
endfor
效果图:有间隙与无间隙

飞鸽截图20190604102253.png 飞鸽截图20190604102431.png
----------------------------
----------------------------
以下开始实践方案3:

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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