Python 基础图蓝色大理石绘制相对的纵断面
我正在尝试使用basemap的Python 基础图蓝色大理石绘制相对的纵断面,python,matplotlib-basemap,Python,Matplotlib Basemap,我正在尝试使用basemap的bluemarble()函数以以下方式绘制地图背景: import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap lats=[-25,66] lons=[60,187] fig=plt.figure();ax=fig.add_subplot(111) bmap=Basemap(projection='merc',\ llcrnrlat=lats[0],llcr
bluemarble()
函数以以下方式绘制地图背景:
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
lats=[-25,66]
lons=[60,187]
fig=plt.figure();ax=fig.add_subplot(111)
bmap=Basemap(projection='merc',\
llcrnrlat=lats[0],llcrnrlon=lons[0],\
urcrnrlat=lats[1],urcrnrlon=lons[1]-360.,\
lon_0=(lons[0]+lons[1])/2.,\
ax=ax)
bmap.bluemarble()
plt.show()
我认为这是因为域正在跨越日期线,它给出了一个x轴翻转的地图
如果我交换llcrnrlon
和urcrnlon
:
bmap=Basemap(projection='merc',\
llcrnrlat=lats[0],llcrnrlon=lons[1]-360.,\
urcrnrlat=lats[1],urcrnrlon=lons[0],\
lon_0=(lons[0]+lons[1])/2.,\
ax=ax)
地图显示了正确的方向,但显示了错误的区域。我想展示印度洋、欧亚和西太平洋,但地图显示了剩余的经度,覆盖了中东太平洋、美洲大陆和大西洋。lonu 0
参数似乎没有任何作用
请提供帮助。您需要绘制两张在日期线连接的地图:
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
lats1=[-25, 66]
lons1=[60, 179.95]
fig=plt.figure()
#fig.set_size_inches((7.5, 6))
fig.set_size_inches((10, 9))
ax1=fig.add_subplot(121)
ax2=fig.add_subplot(122)
bmap=Basemap(projection='merc',\
llcrnrlat=lats1[0], llcrnrlon=lons1[0],\
urcrnrlat=lats1[1], urcrnrlon=lons1[1],\
lon_0=(lons1[0]+lons1[1])/2.,\
ax=ax1)
bmap.bluemarble(ax = ax1)
ax1.set_position([0, 0, 0.8, 1])
lats2=[-25,66]
lons2=[-179.95, -150]
bmap=Basemap(projection='merc',\
llcrnrlat=lats2[0], llcrnrlon=lons2[0],\
urcrnrlat=lats2[1], urcrnrlon=lons2[1],\
lon_0=(lons2[0]+lons2[1])/2.,\
ax=ax2)
bmap.bluemarble(ax = ax2)
ax2.set_position([0.8, 0, 0.2, 1])
ax1.set_aspect('auto')
ax2.set_aspect('auto')
ax1.set_adjustable('datalim')
ax2.set_adjustable('datalim')
plt.show()
谢谢,你救了我一天。那是个聪明的主意。更好的是,添加“ax1.axis('off');ax2.axis('off')`删除日期线处的垂直线。