Python 如何仅使用pcolor/pcolormesh绘制栅格线

Python 如何仅使用pcolor/pcolormesh绘制栅格线,python,numpy,matplotlib,matplotlib-basemap,Python,Numpy,Matplotlib,Matplotlib Basemap,通过使用ax.axhline和ax.axvline我可以绘制网格网络,如下所示: 代码复制如下: lon_grid = np.linspace(113.5,115.49,36) lat_grid = np.linspace(37.40,38.78,30) lon_grid,lat_grid = np.linspace(xc1,xc2,36), np.linspace(yc1,yc2,30) for i in range(0,len(lon_grid),1): ax.ax

通过使用
ax.axhline
ax.axvline
我可以绘制网格网络,如下所示:

代码复制如下:

 lon_grid  = np.linspace(113.5,115.49,36)
 lat_grid  = np.linspace(37.40,38.78,30)

 lon_grid,lat_grid = np.linspace(xc1,xc2,36), np.linspace(yc1,yc2,30)
 for i in range(0,len(lon_grid),1):
     ax.axvline(x=lon_grid[i], linestyle='-', color='black', linewidth=0.75,    zorder=3)
 for i in range(0,len(lat_grid),1):
     ax.axhline(y=lat_grid[i], linestyle='-', color='black', linewidth=0.75, zorder=3)         
这是我的问题 我可以使用pcolor/pcolrmesh来绘制网格的轮廓吗。要控制网格线的位置,可以设置记号的位置,例如:

fig, ax = plt.subplots(1, 1)

ax.grid(True, which='minor', axis='both', linestyle='-', color='k')

ax.set_xticks(lon_grid, minor=True)
ax.set_yticks(lat_grid, minor=True)

ax.set_xlim(lon_grid[0], lon_grid[-1])
ax.set_ylim(lat_grid[0], lat_grid[-1])


如果确实要使用
ax.pcolor
ax.pcolormesh
,可以将
facecolor
参数设置为
'none'
,将
edgecolor
参数设置为
'k'

fig, ax = plt.subplots(1, 1)

x, y = np.meshgrid(lon_grid, lat_grid)
c = np.ones_like(x)

ax.pcolor(x, y, c, facecolor='none', edgecolor='k')

ax.set_xlim(lon_grid[0], lon_grid[-1])
ax.set_ylim(lat_grid[0], lat_grid[-1])


不过,这是一个非常值得怀疑的黑客行为。

不管它值多少钱,
facecolor='none',edgecolor='black'
kwargs to
pcolormesh
都没有问题。我经常使用它来显示模型域的轮廓(类似于有限元网格)。它在处理非矩形或非规则间隔的网格时特别有用。@JoeKington很公平,我以前从未见过以这种方式使用
pcolor
/
pcolormesh
。对于在底图上绘制一个横向/纵向网格,我仍然认为
ax.grid
似乎是一个更自然的解决方案。太好了!pcolor和ax、grid的颜色设置都很有用!这是一个很好的解决方案。通过使用自定义颜色贴图,我们可以更改网格线的颜色。