Python Cartopy figsize不会更改地图的实际大小
使用CartoCopy时如何更改图形宽度和高度。figsize只改变了图形周围的空白,而不是图形本身。任何想法Python Cartopy figsize不会更改地图的实际大小,python,python-3.x,python-2.7,matplotlib,cartopy,Python,Python 3.x,Python 2.7,Matplotlib,Cartopy,使用CartoCopy时如何更改图形宽度和高度。figsize只改变了图形周围的空白,而不是图形本身。任何想法 import cartopy.crs as ccrs import cartopy.feature as cfeature import matplotlib.pyplot as plt def main(): fig = plt.figure(figsize=(10,10)) ax = fig.add_subplot(1, 1, 1, projection=ccr
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
def main():
fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())
ax.set_extent([-20, 60, -40, 45], crs=ccrs.PlateCarree())
ax.add_feature(cfeature.LAND)
ax.add_feature(cfeature.OCEAN)
ax.add_feature(cfeature.COASTLINE)
ax.add_feature(cfeature.BORDERS, linestyle=':')
ax.add_feature(cfeature.LAKES, alpha=0.5)
ax.add_feature(cfeature.RIVERS)
plt.show()
if __name__ == '__main__':
main()
找到此代码
地图的大小只能通过
set\u extent()
方法通过其范围来定义。更改figsize
只会影响贴图轴周围的白色边框
编辑
如果希望在不更改地图范围的情况下放大地图,我只看到一个选项:更改投影。这里有一些例子:
正如您所看到的,一些投影将倾向于增加高度,而另一些投影将看起来更宽。您无法完全控制地图的宽高比,但仍然可以尝试查看某些投影是否更适合您
您可以在中找到投影列表
以下是生成第一个图像的代码:
将cartopy.crs导入为CCR
将cartopy.feature导入为cfeature
将matplotlib.pyplot作为plt导入
图=plt.图(图尺寸=(3,3))
ax=fig.add_子图(1,1,1,投影=ccrs.LambertCompulated())
ax.set_范围([-20,60,-40,45])
ax.add_特征(cfeature.LAND)
ax.add_特征(cfeature.OCEAN)
ax.add_特征(C特征.海岸线)
ax.add_要素(cfeature.BORDERS,线型=':')
ax.add_特征(cfeature.LAKES,alpha=0.5)
ax.add_特征(cfeature.RIVERS)
ax.set_title('lambert's)
plt.savefig('lambert.png',dpi=100)
地图的大小只能通过set\u extent()
方法通过其范围来定义。更改figsize
只会影响贴图轴周围的白色边框
编辑
如果希望在不更改地图范围的情况下放大地图,我只看到一个选项:更改投影。这里有一些例子:
正如您所看到的,一些投影将倾向于增加高度,而另一些投影将看起来更宽。您无法完全控制地图的宽高比,但仍然可以尝试查看某些投影是否更适合您
您可以在中找到投影列表
以下是生成第一个图像的代码:
将cartopy.crs导入为CCR
将cartopy.feature导入为cfeature
将matplotlib.pyplot作为plt导入
图=plt.图(图尺寸=(3,3))
ax=fig.add_子图(1,1,1,投影=ccrs.LambertCompulated())
ax.set_范围([-20,60,-40,45])
ax.add_特征(cfeature.LAND)
ax.add_特征(cfeature.OCEAN)
ax.add_特征(C特征.海岸线)
ax.add_要素(cfeature.BORDERS,线型=':')
ax.add_特征(cfeature.LAKES,alpha=0.5)
ax.add_特征(cfeature.RIVERS)
ax.set_title('lambert's)
plt.savefig('lambert.png',dpi=100)
Cartopy中的几个步骤就可以了。但是没有一句话像Basemap那样。谢谢,你知道怎么做吗?你的问题变了。我上面的评论现在无效。在Cartopy中执行几个步骤即可。但是没有一句话像Basemap那样。谢谢,你知道怎么做吗?你的问题变了。我上面的评论现在无效。非常感谢你的帮助。我试图只画热带地区,但我也想放大地图,而不超出热带地区。有没有办法在不增加经纬度扩展的情况下扩大特定领域?非常感谢。我认为Cartopy在控制图像宽度和高度的basemap函数()中有一些参数,比如width和height。我认为,如果Cartopy具有类似的功能,那就太好了。感谢以下提供更全面的解决方案。非常感谢你的帮助。我试图只画热带地区,但我也想放大地图,而不超出热带地区。有没有办法在不增加经纬度扩展的情况下扩大特定领域?非常感谢。我认为Cartopy在控制图像宽度和高度的basemap函数()中有一些参数,比如width和height。我认为,如果Cartopy具有类似的功能,那就太好了。感谢以下提供更全面的解决方案。