[英]How do I plot coordinates in csv on the map from from 'natural_earth" using cartopy and matplotlib?
[英]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:這是我的第一篇文章,所以請告訴我您是否需要更精確地解決我的問題,或者我是否需要以某種方式編輯我的帖子
這是一個最小的例子。 在您的示例中,您沒有顯示您的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
中的crs
kw (如果不使用set_global
)和plot
中的transform
kw 的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.