Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Cartopy figsize不会更改地图的实际大小_Python_Python 3.x_Python 2.7_Matplotlib_Cartopy - Fatal编程技术网

Python Cartopy 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

使用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=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具有类似的功能,那就太好了。感谢以下提供更全面的解决方案。