Skip to main content
 Web开发网 » 编程语言 » Python语言

Python数据可视化,如何删除地图投影上的等值线以及风场?

2021年11月27日6730百度已收录

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

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

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

创建一个figure实例在figure里创建Axes容器实例在Axes容器内创建Basemap实例进行地图投影调用Basemap实例的contour及barbs方法进行在地图上绘图二、不进行擦除操作直接绘制新的等值线或风场效果演示为了方便演示,数据为我自己手中的数据,其中为等值线的数据及坐标,为风场的数据及坐标,数据的格式及获得方法就不做过多解释

1. 绘制地图投影

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第1张

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

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第2张

2. 绘制等值线

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第3张

得到结果如下:

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第4张

3. 继续绘制风场

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第5张

得到结果如下:

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第6张

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

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

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第7张

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

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第8张

2. 绘制等值线

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第9张

得到结果如下:

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第10张

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

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第11张

得到下图结果:

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第12张

4. 绘制风场

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第13张

得到结果如下:

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第14张

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

四、对等值线实例及风场实例进行研究1. 等值线通过dir()命令我们可以查看创建的等值线实例c的属性方法

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第15张

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

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第16张

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

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第17张

得到下图结果:

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第18张

由此可见,此方法可行

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

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第19张

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

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第20张

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

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第21张

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

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第22张

得到下图结果:

Python数据可视化,如何删除地图投影上的等值线以及风场?  Python数据可视化 第23张

由此可见,此方法可行

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

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

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

评论列表暂无评论
发表评论
微信