簡體   English   中英

使用 cartopy 到 plot 一個二進制 map 的地球

[英]Using cartopy to plot a binary map of Earth

我正在嘗試對地球的 plot 和 map 使用 cartopy,只有 2 個 colors。 例如,被白色填充的土地和在黑暗中填充的海洋。 現在,我使用創建大陸輪廓的 Coastlines() 方法,但我不知道如何用顏色填充它們,或者用一種顏色填充海洋。

 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')

它產生一個帶有大陸的 map,但它全是白色的,除了黑色的海岸線。 關於如何用顏色填充大陸和/或海洋的任何想法? 我考慮過使用 stock_img() 方法,但它並沒有用一種顏色均勻地填充土地。

先感謝您 !

PS:這是我的第一篇文章,所以請告訴我您是否需要更精確地解決我的問題,或者我是否需要以某種方式編輯我的帖子

這是一個最小的例子。 在您的示例中,您沒有顯示您的longitudelatitudeA數據,所以我只是用一條簡單的線替換。

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中的crs kw (如果不使用set_global )和plot中的transform kw 的原因。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM