登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
以前在群里也共享过一段一页多图的脚本,那个脚本是别人分享给我的,写的很繁琐,而且不是很灵活。最近两天在看GrADS相关文档的时候发现,其实GrADS有自带一份非常好的一页多图的脚本函数:panels.gsf ,该脚本存在于安装目录的lib文件夹下,如果你是opengrads,那么可以去这个帖子找一下对应的文件夹(点我看看)。如果你找过了,但是没找到,那么可以直接在GrADS的官网上找到这个脚本(也可以点我免金币下载),如果官网链接不上,那就去我的附件下载吧,下载后放到前面说的目录即可。
说了一大堆,现在是正题了,先给出我用这个脚本函数做的测试图吧:
是不是感觉分页的效果还不错呢?实现起来并不复杂,通过下面的简单介绍,你也就能做出来啦! 这个脚本使用的是GrADS中的动态脚本的形式,也就是说,在脚本函数中通过定义全局变量(以下划线"_"开头的变量),并给这个变量赋值(此例中该变量其实是一个伪数组的形式),就可以在调用这个脚本的主脚本中使用此变量,这个变量是保存在内存中的,脚本结束后被释放。 调用这个脚本的方法是:panels(args),其中,args是传递参数,包含了两个参数的组合,即你需要分页出来的行数(rows)和列数(cols),这一点在下面的脚本中会得到证实。
整个过程的思路是这样的: 1、打开需要作图的文件; 2、调用分页函数,获得分页语句,仅是set vpage语句而已,还没有分页; 3、从想象中的第一个页面开始循环,直到分出所有页面则进入步骤8; 4、调用分页函数中的全局变量:_vpg.p,实现分页; 5、作图相关设置; 6、作图; 7、分页数加一(p=p+1),返回第三步继续循环; 8、取消虚页设置,继续其他需要的操作。 注意,如果分页中需要作图的文件不是同一个文件,那么需要把步骤1放到步骤3的后面,并且下一个循环之前及时关闭文件。
下面就是这次使用的程序截图了,gs文件请在附件中下载。
|