首页后端开发Python如何删除地图投影上的等值线以及风场

如何删除地图投影上的等值线以及风场

时间2023-06-02 20:32:02发布访客分类Python浏览257
导读:如何删除地图投影上的等值线以及风场?通过对等值线及风场的返回结果进行研究,我找到了一个不必重新投影地图就可将等值线及风场擦除的方法。一、matplotlib及Basemapmatplotlib是Python常用的数据绘制包。它基于numpy...

如何删除地图投影上的等值线以及风场?

通过对等值线及风场的返回结果进行研究,我找到了一个不必重新投影地图就可将等值线及风场擦除的方法。

一、matplotlib及Basemap

matplotlib是Python常用的数据绘制包。它基于numpy的数组运算功能,可以轻易的画出各种统计图形,如散点图,条行图,饼图,等值线图等。Basemap是Matplotlib的一个子包,负责地图绘制。在数据可视化过程中,我们可以将数据在地图上画出来。

利用matplotlib及Basemap画图的基本步骤是:

创建一个figure实例在figure里创建Axes容器实例在Axes容器内创建Basemap实例进行地图投影调用Basemap实例的contour及barbs方法进行在地图上绘图二、不进行擦除操作直接绘制新的等值线或风场效果演示

为了方便演示,数据为我自己手中的数据,其中为等值线的数据及坐标,为风场的数据及坐标,数据的格式及获得方法就不做过多解释

1. 绘制地图投影

我们将得到下图演示的结果

2. 绘制等值线

得到结果如下:

3. 继续绘制风场

得到结果如下:

由此我们可以看出,如果在绘制新的等值线或者风场前不进行擦除操作,所有的图像都会叠加在一起

三、通过重新进行地图投影进行擦除操作1. 绘制地图投影

我们将得到下图演示的结果

2. 绘制等值线

得到结果如下:

3. 擦除axes重新进行地图投影

得到下图结果:

4. 绘制风场

得到结果如下:

此方法虽然可以达到预期的效果,但是我们的地图投影并未做过改变,重新进行地图投影毫无意义,而且还会占用系统不必要的资源

四、对等值线实例及风场实例进行研究1. 等值线

通过dir()命令我们可以查看创建的等值线实例c的属性方法

通过查看,发现在c的属性方法中并没有remove()方法,但是我们发现有一个属性是collections,这里的collections如果与Python的集合类相同,它就应该有remove()方法进删除,所以继续通过dir()命令进行查看

通过查看,发现c.collections有remove()方法,所以尝试用c.collections.remove()进行删除,由于remove()方法一次只能删除一个元素,所以要用for循环来进行删除。

得到下图结果:

由此可见,此方法可行

2. 风场

通过dir()命令我们可以查看创建的等值线实例b的属性方法

可以发现风场的实例b没有remove方法,也没有collection属性,所以决定先通过type()方法看看风场实例是什么类型的

可以发现风场实例b是一个元组,所以继续看它的元素有什么属性

可以发现风场实例元组的元素自己就有remove属性,所以通过remove方法尝试一下可不可以进行风场的删除

得到下图结果:

由此可见,此方法可行

五、总结

对于等值线,可以通过等值线实例的collection属性的remove方法进行删除已经绘制等值线;

对于风场,可以通过风场实例元组中个元素的remove方法进行删除已绘制风场;

对于地图上其他绘图方法,也可以通过本文的方法进行一步步的尝试。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何删除地图投影上的等值线以及风场
本文地址: https://pptw.com/jishu/58687.html
怎么样调用32位的DLL最方便 处理zip文件的库

游客 回复需填写必要信息