matplotlib 如何删除ImageGrid中的勾号?

4urapxun  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(149)

如何在保留ImageGrid中的行标题的同时删除刻度和数字?

grid[j].axis("off")

删除标签“输入”、“地面实况”和“预测”,而

grid[j].set_xticklabels([])
grid[j].set_yticklabels([])

只删除了数字,但没有删除轴上的破折号。我查看了https://matplotlib.org/3.1.1/api/_as_gen/mpl_toolkits.axes_grid1.axes_grid.ImageGrid.html,但它似乎没有一个没有刻度的选项。

for idx in range(0,1):
    fig  = plt.figure(idx, (15, 10))
    grid = ImageGrid(fig, 111, nrows_ncols=(3, 10), axes_pad=0.1)  
    grid[0].set_ylabel("Input",rotation=0)
    grid[10].set_ylabel("Ground Truth",rotation=0)
    grid[20].set_ylabel("Variational ConvLSTM",rotation=0)
    for j in range(10):
        #grid[j].set_xticklabels([])
        #grid[j].set_yticklabels([])
        #grid[j].axis("off") This removes the title
        grid[j].imshow(x_true[idx,j], cmap="gray")
        grid[j+10].imshow(x_true[idx,j+10], cmap="gray")
        grid[j+20].imshow(x_temp[idx,j], cmap="gray")

这是我目前的输出。理想情况下,它应该没有刻度(破折号)和数字。

rekjcdws

rekjcdws1#

简单的方法是设置share_all = True,然后

grid[0].get_yaxis().set_ticks([])
grid[0].get_xaxis().set_ticks([])

所以所有的分笔成交点都会被禁用

for idx in range(0,1):
    fig  = plt.figure(idx, (15, 10))
    grid = ImageGrid(fig, 111, nrows_ncols=(3, 10), axes_pad=0.1, share_all=True)  

    grid[0].get_yaxis().set_ticks([])
    grid[0].get_xaxis().set_ticks([])

    # labels
    grid[0].set_ylabel("Input",rotation=0)
    grid[10].set_ylabel("Ground Truth",rotation=0)
    grid[20].set_ylabel("Prediction",rotation=0)
    for j in range(10):
        #grid[j].set_xticklabels([])
        #grid[j].set_yticklabels([])
        #grid[j].get_yaxis().set_ticks([])
        #grid[j].get_xaxis().set_ticks([])
        #grid[j].axis("off")
        grid[j].imshow(x_true[idx,j], cmap="gray")
        grid[j+10].imshow(x_true[idx,j+10], cmap="gray")
        grid[j+20].imshow(x_temp[idx,j], cmap="gray")

相关问题