1
我想绘制一个如下所示的草图,使用python和matplotlib。我想制作网格并不困难,但是如何以特定的方式为特定的方块着色?在matplotlib中绘制网格图案
我想绘制一个如下所示的草图,使用python和matplotlib。我想制作网格并不困难,但是如何以特定的方式为特定的方块着色?在matplotlib中绘制网格图案
N = 15
# make an empty data set
data = np.ones((N, N)) * np.nan
# fill in some fake data
for j in range(3)[::-1]:
data[N//2 - j : N//2 + j +1, N//2 - j : N//2 + j +1] = j
# make a figure + axes
fig, ax = plt.subplots(1, 1, tight_layout=True)
# make color map
my_cmap = matplotlib.colors.ListedColormap(['r', 'g', 'b'])
# set the 'bad' values (nan) to be white and transparent
my_cmap.set_bad(color='w', alpha=0)
# draw the grid
for x in range(N + 1):
ax.axhline(x, lw=2, color='k', zorder=5)
ax.axvline(x, lw=2, color='k', zorder=5)
# draw the boxes
ax.imshow(data, interpolation='none', cmap=my_cmap, extent=[0, N, 0, N], zorder=0)
# turn off the axis labels
ax.axis('off')
TNX,但我得到:__init __()得到了一个意想不到的关键字参数 'tight_layout' –
@AndreiBerceanu就删除即可。它适用于更新版本的mpl – tacaswell
好吧,我更新了matplotlib到1.4,并摆脱了tight_layout错误。但是,现在它会发出警告:此图包含与tight_layout不兼容的轴,因此其结果可能不正确。 –