Matplotlib:删除子图的轴上的编号,使用fig.add_subplot()创建

时间:2017-05-30 16:41:14

标签: python matplotlib

我在那里使用matplotlib去除子图的一个轴上的编号,假设我使用fig.add_subplot()来创建子图(而不是plt.subplots())?

以下是示例代码:

index = 0
fig = plt.figure()

for q in range(3, 24, 4):
    index  += 1;
    f = './npy_train_{:02d}_0013.npy'.format(q)
    images = np.load(f)
    ax = fig.add_subplot(2, 3, index)
    ax.set_xlim((0,1)); ax.set_ylim((0,1))
    ax.plot(images[0, 0, :, 0], images[0, 1, :, 0], 'bo', label = 'train_{:02d}_0013.npy'.format(q))
    ax.set_title('npy_train_{:02d}_0013.npy'.format(q))

我想知道如何摆脱第一行子图中x轴上的数字。

1 个答案:

答案 0 :(得分:1)

您可以使用ax.set_xticklabels([])从给定的子图中删除刻度标签。然后你只需要知道应用它的子图。在你的情况下,那些索引为1,2和3的那些。所以,你可以使用if index < 4:,如下所示:

import matplotlib.pyplot as plt
import numpy as np

index = 0
fig = plt.figure()

for q in range(3, 24, 4):
    index  += 1;
    f = './npy_train_{:02d}_0013.npy'.format(q)
    images = np.load(f)
    ax = fig.add_subplot(2, 3, index)
    ax.set_xlim((0,1)); ax.set_ylim((0,1))
    ax.plot(images[0, 0, :, 0], images[0, 1, :, 0], 'bo', label = 'train_{:02d}_0013.npy'.format(q))
    ax.set_title('npy_train_{:02d}_0013.npy'.format(q))

    if index < 4:
        ax.set_xticklabels([])

plt.show()

enter image description here