首页 > 解决方案 > 如何使用 pcolor 添加主要和次要网格线?

问题描述

我的目标是在我使用 pcolor 创建的现有网格标记上添加一组厚网格标记(参见下面的代码)。每 N 条(例如 5 条)较细的网格线将有一条粗网格线。我要添加的网格线可能类似于主要刻度线,而现有网格线可能类似于次要刻度线。

我的代码:

Z = np.random.rand(25, 25)

fig=plt.figure(figsize=(18, 16), dpi= 80, facecolor='w', edgecolor='k')

gs = gridspec.GridSpec(2, 3, width_ratios=[1,1,0.1])

ax1 = plt.subplot(gs[0,1])
plt1 = ax1.pcolor(Z, cmap=plt.cm.Blues, edgecolors='k', linewidths=1)

cbax = plt.subplot(gs[0,2])
cb = Colorbar(ax=cbax, mappable = plt1)

输出图像: 带有网格线的随机数据

用红线显示我想要的主要网格的修正图像:与修正的红色网格线相同的数据

有没有人有一个好的解决方案或解决这个问题?

标签: pythonpython-3.xnumpymatplotlib

解决方案


我能够通过在matplotlib.pyplot.grid 文档中四处挖掘来解决我的问题。

这是我更新的代码:

Z = np.random.rand(25, 25)

fig=plt.figure(figsize=(18, 16), dpi= 80, facecolor='w', edgecolor='k')

gs = gridspec.GridSpec(2, 3, width_ratios=[1,1,0.1])

ax1 = plt.subplot(gs[0,1])
plt1 = ax1.pcolor(Z, cmap=plt.cm.Blues, edgecolors='k', linewidths=1)

ax1.xaxis.set_major_locator(MultipleLocator(5))
ax1.yaxis.set_major_locator(MultipleLocator(5))
ax1.grid(b=True, which='major', color='r', linestyle='-')

cbax = plt.subplot(gs[0,2])
cb = Colorbar(ax=cbax, mappable = plt1)

输出图: 带有主要和次要网格线的随机数据


推荐阅读