欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

如何刪除地圖投影上的等值線以及風場

江奕云2年前13瀏覽0評論

如何刪除地圖投影上的等值線以及風場?

通過對等值線及風場的返回結果進行研究,我找到了一個不必重新投影地圖就可將等值線及風場擦除的方法。

一、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方法進行刪除已繪制風場;

對于地圖上其他繪圖方法,也可以通過本文的方法進行一步步的嘗試。