Adjusting gridlines and ticks in matplotlib imshow

前端 未结 4 1118
遇见更好的自我
遇见更好的自我 2021-02-01 15:07

I\'m trying to plot a matrix of values and would like to add gridlines to make the boundary between values clearer. Unfortunately, imshow decided to locate the tick marks in the

4条回答
  •  清歌不尽
    2021-02-01 15:29

    Code for solution as suggested by Serenity:

    plt.figure()
    im = plt.imshow(np.reshape(np.random.rand(100), newshape=(10,10)),
                    interpolation='none', vmin=0, vmax=1, aspect='equal')
    
    ax = plt.gca();
    
    # Major ticks
    ax.set_xticks(np.arange(0, 10, 1))
    ax.set_yticks(np.arange(0, 10, 1))
    
    # Labels for major ticks
    ax.set_xticklabels(np.arange(1, 11, 1))
    ax.set_yticklabels(np.arange(1, 11, 1))
    
    # Minor ticks
    ax.set_xticks(np.arange(-.5, 10, 1), minor=True)
    ax.set_yticks(np.arange(-.5, 10, 1), minor=True)
    
    # Gridlines based on minor ticks
    ax.grid(which='minor', color='w', linestyle='-', linewidth=2)
    

    Resulting image:

提交回复
热议问题