plt绘图 取消四周的框、刻度以及颜色设置的一些小笔记

54 阅读1分钟
def plot_tsne(data, label, dataset_str):
    print('Computing t-SNE embedding')
    label = label.cpu()
    data = data.cpu().detach().numpy()
    tsne = TSNE(n_components=2, init='pca', random_state=0)
    t0 = time()

    result = tsne.fit_transform(data)
    nb_classes = label.unique().max()+1
    print("{} class number is {}".format(dataset_str,nb_classes))
    
    t1 = time()
    fig = plt.figure(figsize=(8, 8))
    from matplotlib.ticker import NullFormatter
    print("t-SNE: %.2g sec" % (t1 - t0))  # 算法用时
    plt.axis('off')  # 去坐标轴
    ax = fig.add_subplot(1, 1, 1)
    ax.tick_params(bottom=False, top=False, left=False, right=False)  # 移除全部刻度
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)
    ax.spines['bottom'].set_visible(False)
    ax.spines['left'].set_visible(False)

    colors = [
            '#ffc0cb', '#bada55', '#008080', '#420420', '#7fe5f0', '#065535', '#ffd700'
        ]

    for i in range(nb_classes):
        plt.scatter(result[label == i, 0], result[label == i, 1], s=20, color=colors[i])

    ax.xaxis.set_major_formatter(NullFormatter())  # 设置标签显示格式为空
    ax.yaxis.set_major_formatter(NullFormatter())
    plt.show()
    # plt.savefig('/media/user/2FD84FB396A78049/Yuzz/BIGCN_topic/plot_result/plot_tsne.png')
    print("save done!")

其中颜色设置: 也可以不自己设定,可以通过plt自身封装的可视化色板,具体参考如下链接: blog.csdn.net/weixin_4363…

效果:

image.png