python绘制等值线图_在Visual Studio Code中利用python3 matplotlib绘制等值线图

配置Python开发环境

安装python

记得勾选添加环境变量。Add Python to PATH

20191028164325268.gif

20191028164517731.png

import this1

欣赏下python之禅

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pYW9kaWNoaXlvdQ==,size_16,color_FFFFFF,t_70

下载安装第三方包

pip install flake8

pip install yapf1

2

检查是否已存在需要的包

pip list1

配置Visual Studio Code

用户设置

Visual Studio Code 文件 -> 首选项 -> 设置 -> 用户 配置settings.json

"python.pythonPath": "python3",1

工作区域设置

在工作区域输入以下内容:

{

"python.linting.flake8Enabled": true,

"python.formatting.provider": "yapf",

"python.linting.flake8Args": ["--max-line-length=248"],

"python.linting.pylintEnabled": false

}1

2

3

4

5

6

matplotlib

安装matplotlib

python -m pip install matplotlib1

测试运行matplotlib

运行测试程序:

import numpy as np

from matplotlib import pyplot as plt

x = np.arange(1, 11)

y = 2 * x + 5

plt.title("Matplotlib demo")

plt.xlabel("x axis caption")

plt.ylabel("y axis caption")

plt.plot(x, y)

plt.show()1

2

3

4

5

6

7

8

9

10

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pYW9kaWNoaXlvdQ==,size_16,color_FFFFFF,t_70

basemap

安装geos

pip install geos1

安装basemap

basemap无法用pip安装

访问 https://www.lfd.uci.edu/~gohlke/pythonlibs/

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pYW9kaWNoaXlvdQ==,size_16,color_FFFFFF,t_70选择basemap,根据自己安装的Python版本选择,32和64是指安装的Python的版本,cp后面的数字是Python的版本。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pYW9kaWNoaXlvdQ==,size_16,color_FFFFFF,t_70

还需在当前页面下载pyproj,pyhdf,netCDF4对应的whl包

pip install pyproj-2.4.0-cp37-cp37m-win_amd64.whl

pip install pyhdf-0.10.1-cp37-cp37m-win_amd64.whl

pip install basemap-1.2.1-cp37-cp37m-win_amd64.whl

pip install netCDF4-1.5.3-cp37-cp37m-win_amd64.whl1

2

3

4

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pYW9kaWNoaXlvdQ==,size_16,color_FFFFFF,t_70

测试运行basemap

运行测试程序:

import matplotlib.pyplot as plt

from mpl_toolkits.basemap import Basemap

plt.figure(figsize=(16, 8))

m = Basemap()

m.drawcoastlines()

m.drawcountries(linewidth=1.5)

plt.show()1

2

3

4

5

6

7

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pYW9kaWNoaXlvdQ==,size_16,color_FFFFFF,t_70

运行

参考 https://matplotlib.org/basemap/users/examples.html

我们使用第一个例子:Plot contour lines on a basemap(在地图上画轮廓线)

from mpl_toolkits.basemap import Basemap

import matplotlib.pyplot as plt

import numpy as np

# set up orthographic map projection with

# perspective of satellite looking down at 50N, 100W.

# use low resolution coastlines.

map = Basemap(projection='ortho',lat_0=45,lon_0=-100,resolution='l')

# draw coastlines, country boundaries, fill continents.

map.drawcoastlines(linewidth=0.25)

map.drawcountries(linewidth=0.25)

map.fillcontinents(color='coral',lake_color='aqua')

# draw the edge of the map projection region (the projection limb)

map.drawmapboundary(fill_color='aqua')

# draw lat/lon grid lines every 30 degrees.

map.drawmeridians(np.arange(0,360,30))

map.drawparallels(np.arange(-90,90,30))

# make up some data on a regular lat/lon grid.

nlats = 73; nlons = 145; delta = 2.*np.pi/(nlons-1)

lats = (0.5*np.pi-delta*np.indices((nlats,nlons))[0,:,:])

lons = (delta*np.indices((nlats,nlons))[1,:,:])

wave = 0.75*(np.sin(2.*lats)**8*np.cos(4.*lons))

mean = 0.5*np.cos(2.*lats)*((np.sin(2.*lats))**2 + 2.)

# compute native map projection coordinates of lat/lon grid.

x, y = map(lons*180./np.pi, lats*180./np.pi)

# contour data over the map.

cs = map.contour(x,y,wave+mean,15,linewidths=1.5)

plt.title('contour lines over filled continent background')

plt.show()1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pYW9kaWNoaXlvdQ==,size_16,color_FFFFFF,t_70

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值