【发布时间】:2016-03-17 14:02:25
【问题描述】:
我的目标是绘制一些数据并将其与世界地图合并。我使用 Delaunay 三角剖分生成数据,如下所示:
u = np.array(lat)
v = np.array(lon)
x = u
y = v
z = np.array(iwv)
tri = Delaunay(np.array([u,v]).T)
plt.tricontourf(y, x, z, lev, triangles=tri.simplices)
plt.colorbar()
plt.show()
我还使用 mpl_toolkits 制作地图:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
m = Basemap(projection='merc',llcrnrlat= 35,urcrnrlat=60,llcrnrlon=0,urcrnrlon=30,resolution='c', suppress_ticks=True)
m.drawcountries()
m.drawcoastlines()
plt.show()
这些程序为我提供了两张连续的分离图片,其中包含三角测量结果和地图。如何合并它们并获得地图和三角测量结果的图片? 提前谢谢你。
给阿玛蒂塔。 感谢您的回答,但它没有帮助。当我运行这段代码时:
u = np.array(lat)
v = np.array(lon)
x = u
y = v
z = np.array(iwv)
tri = Delaunay(np.array([u,v]).T)
lev = np.linspace(0, 0.1, 100)
m = Basemap(projection='merc',llcrnrlat= 35,urcrnrlat=60,llcrnrlon=0,urcrnrlon=30,resolution='c', suppress_ticks=True)
m.drawcountries()
m.drawcoastlines()
plt.tricontourf(y, x, z, lev, triangles=tri.simplices)
plt.colorbar()
plt.show()
我只得到一张带彩条的空地图。
致 dl.meteo: 谢谢,但是当我尝试这样做时,我会收到下一条消息:
> Traceback (most recent call last): File
> "/home/anton/PycharmProjects/final/test.py", line 76, in <module>
> plot = m.contourf(x1, y1,z, lev) File "/usr/lib/pymodules/python2.7/mpl_toolkits/basemap/__init__.py", line
> 521, in with_transform
> return plotfunc(self,x,y,data,*args,**kwargs) File "/usr/lib/pymodules/python2.7/mpl_toolkits/basemap/__init__.py", line
> 3644, in contourf
> xx = x[x.shape[0]/2,:] IndexError: too many indices
据我了解,contourf() 中的第三个参数应该是二维数组,但三角测量返回一维数组。
【问题讨论】:
-
您有两个 plt.show() 实例,删除第一个并按顺序运行绘图指令(一个接一个)。完成所有指令后(对于两个图),执行 plt.show()
标签: python merge triangulation delaunay world-map