如何使地图线在Cartopy中的数据上可见?

时间:2019-11-06 17:52:50

标签: python cartopy

我正在尝试使地图线始终位于数据之上,但是找不到正确的命令/选项来实现此目的。在下面的图中,我希望粗蓝线“位于”黑色状态线下方,但位于米色状态的上方。

代码:

import matplotlib.pyplot as plt
import numpy as np
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import os,sys

conus_proj = ccrs.LambertConformal(central_longitude=-96,central_latitude=39.0)
fig = plt.figure(figsize=(10,8))
ax = fig.add_subplot(1,1,1,projection=conus_proj)
ax.set_extent([-120,-70,22,50])
#ax.add_feature(cfeature.BORDERS)
ax.add_feature(cfeature.COASTLINE)
ax.add_feature(cfeature.OCEAN, facecolor='#CCFEFF')
ax.add_feature(cfeature.LAKES, facecolor='#CCFEFF')
ax.add_feature(cfeature.RIVERS, facecolor='#CCFEFF')
ax.add_feature(cfeature.LAND, facecolor='#FFE9B5')
state_borders = cfeature.NaturalEarthFeature(category='cultural', name='admin_1_states_provinces_lakes', scale='50m', facecolor='#FFE9B5')
ax.add_feature(state_borders, edgecolor='black')

plt.plot([-120,-70],[35,45],linewidth=8, transform=ccrs.PlateCarree())
plt.show()

我尝试更改ax.add_feature(state_borders...)plt.plot(...)的zorder,但收到了奇怪的结果。默认情况下,pcolormesh的状态边框位于顶部,而plt.plot的状态边框似乎并非如此

这是上面代码的输出: enter image description here

1 个答案:

答案 0 :(得分:1)

<root> <stock> <code>Apple</code> <primary> <img_file>1.jpg</img_file> <main_image>1</main_image> </primary> <images> <image> <img_file>2.jpg</img_file> <main_image>0</main_image> </image> </images> </stock> </root> class Person: def __init__(self,name,weight): self.name=name self.weight=weight def BMI(self): return self.name return self.weight person1=Person("john",52) print(person1.BMI()) 之所以不同的原因是,它们具有不同的默认zorder。如果我将州边界的zorder设置为10(请注意下面,我使用Cartopy对状态的内置支持),则它们会显示在图的顶部:

pcolormesh

我还必须去除某些功能上的脸部颜色。