在海岸线上绘制等高线图的底图
Basemap plotting a contour figure over coastlines
我正在尝试将等高线图叠加到海岸线底图上。现在它要么单独绘制,要么只绘制底图。
Xa = np.linspace(-93.6683,-93.2683,25)
Ya = np.linspace(29.005,29.405,25)
plt.figure()
m = Basemap(width=1200000,height=900000,projection='lcc',resolution='f',lat_1=29.205,lat_2=29.5,lat_0=29.205,lon_0=-93,4683)
m.drawcoastlines()
plt.contourf(Ya,Xa,Result.reshape(len(Xa),len(Ya)))
plt.colorbar()
plt.show()
代码中的结果是绘制为等高线的浓度。我会添加它们,但是 运行 我的代码中有 625 个浓度值。
我想知道如何编写代码的绘图部分才能叠加这两个图。谢谢!
您可能希望在此处使用底图的等高线功能。然而,这有一些特殊性。
它只接受二维数组作为输入,也就是说,你需要先创建一个坐标网格。
并且输入必须是映射坐标,x,y = m(X,Y)
还要注意尺寸。 numpy数组的第一维是y轴,第二维是x轴
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
Xa = np.linspace(-93.6683,-93.2683,25)
Ya = np.linspace(29.005,29.405,25)
X,Y = np.meshgrid(Xa,Ya)
Result = np.random.rand(len(Ya)*len(Xa))
m = Basemap(width=1200000,height=900000,projection='lcc',resolution='c',
lat_1=29.205,lat_2=29.5,lat_0=29.205,lon_0=-93.4683)
m.drawcoastlines()
mx,my = m(X,Y)
m.contourf(mx,my,Result.reshape(len(Ya),len(Xa)))
plt.colorbar()
plt.show()
我正在尝试将等高线图叠加到海岸线底图上。现在它要么单独绘制,要么只绘制底图。
Xa = np.linspace(-93.6683,-93.2683,25)
Ya = np.linspace(29.005,29.405,25)
plt.figure()
m = Basemap(width=1200000,height=900000,projection='lcc',resolution='f',lat_1=29.205,lat_2=29.5,lat_0=29.205,lon_0=-93,4683)
m.drawcoastlines()
plt.contourf(Ya,Xa,Result.reshape(len(Xa),len(Ya)))
plt.colorbar()
plt.show()
代码中的结果是绘制为等高线的浓度。我会添加它们,但是 运行 我的代码中有 625 个浓度值。 我想知道如何编写代码的绘图部分才能叠加这两个图。谢谢!
您可能希望在此处使用底图的等高线功能。然而,这有一些特殊性。
它只接受二维数组作为输入,也就是说,你需要先创建一个坐标网格。
并且输入必须是映射坐标,
x,y = m(X,Y)
还要注意尺寸。 numpy数组的第一维是y轴,第二维是x轴
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
Xa = np.linspace(-93.6683,-93.2683,25)
Ya = np.linspace(29.005,29.405,25)
X,Y = np.meshgrid(Xa,Ya)
Result = np.random.rand(len(Ya)*len(Xa))
m = Basemap(width=1200000,height=900000,projection='lcc',resolution='c',
lat_1=29.205,lat_2=29.5,lat_0=29.205,lon_0=-93.4683)
m.drawcoastlines()
mx,my = m(X,Y)
m.contourf(mx,my,Result.reshape(len(Ya),len(Xa)))
plt.colorbar()
plt.show()