我试着用卡通画出一张只有两种颜色的地球地图。这片土地,如白茫茫的,黑暗中的海洋。现在,我使用海岸线()方法创建大陆的等高线,但我不知道如何用颜色填充它们,也不知道如何用颜色填充海洋。
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(12,6))
ax = fig.add_subplot(1,1,1,projection = ccrs.EckertIV())
ax.clear()
cs = ax.contourf(longitude,lattitude,A,transform=ccrs.PlateCarree(),
cmap='gist_gray',alpha=0.3)#,extend = 'both')
ax.coastlines(color = 'black')它绘制了一张与大陆有关的地图,但除了黑色的海岸线外,所有地图都是白色的。关于如何用颜色填充大陆和/或海洋,有什么想法吗?我已经考虑过使用stock_img()方法,但它并不能用一种颜色均匀地填充土地。
提前谢谢你!
PS :这是我的第一篇文章,所以请告诉我你是否需要对我的问题更精确,或者我是否需要用某种方式编辑我的帖子。
发布于 2020-06-11 16:50:09
下面是一个很小的例子。在您的示例中,您没有显示什么是longitude、latitude和A数据,所以我只是用一个简单的行替换了它。
import matplotlib.pyplot as plt
import cartopy
import cartopy.crs as ccrs
latitude = [0, 10]
longitude = [0, 20]
fig = plt.figure(figsize=(12, 6))
ax = fig.add_subplot(1, 1, 1, projection=ccrs.EckertIV())
ax.set_global()
# set_extent([-180, 180, -90, 90], crs=ccrs.PlateCarree())
ax.patch.set_facecolor(color='black')
# or
# ax.background_patch.set_facecolor(color='black') # cartopy < v0.18
# or
# ax.add_feature(cartopy.feature.OCEAN, color='black')
ax.add_feature(cartopy.feature.LAND, color='white')
ax.plot(longitude, latitude, color='red', transform=ccrs.PlateCarree())您使用的是EckertIV投影,因此必须通知轴,您的经度和纬度值引用了PlateCarree投影。这就是为什么您必须在set_extent中使用set_extent中的transform kw (如果不使用set_global)和在plot中使用transform kw。

https://stackoverflow.com/questions/62181739
复制相似问题