Drawing grid pattern in matplotlib

前端 未结 1 593
春和景丽
春和景丽 2020-12-29 14:54

I would like to draw a sketch like the one below, using python with matplotlib. I guess making a grid is not so hard, but what about coloring certain squares in a specific w

相关标签:
1条回答
  • 2020-12-29 15:37
    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')
    

    example output

    0 讨论(0)
提交回复
热议问题