如何在Python中合并两个图?

时间:2016-03-17 14:02:25

标签: python merge triangulation delaunay world-map

我的目标是绘制一些数据并将其与世界地图合并。我使用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()

这些程序给了我两张连续分开的图片,其中包括三角测量和地图的结果。我怎样才能合并它们并用三角测量的地图和结果得到图片? 提前谢谢。

到armatita。 谢谢你的回答,但没有用。当我运行此代码时:

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()中的第三个参数应该是一个二维数组,但三角测量会返回一维数组。

1 个答案:

答案 0 :(得分:0)

您必须将m(map)引用到变量x和y。

x,y = m(lats,lons)

然后你必须初始化轮廓

plot = m.contour(x,y)

我希望这有帮助,我也是初学者;)