Matplotlib 历史方法

Matplotlib hist method

我正在尝试绘制 MNIST 数据集的直方图:

numberMNIST = fetch_openml('mnist_784',return_X_y=False)

dataset = numberMNIST.data     
labels = numberMNIST.target    

X_train, X_test, Y_train, Y_test = dataset[:60000], dataset[60000:], labels[:60000], labels[60000:]
Y_train_is4 = (Y_train == '4')
Y_test_is4 = (Y_test == '4')

plt.hist(Y_train)
plt.xlabel("Label")
plt.ylabel("Quantity")
plt.title("Labels in MNIST 784 dataset")

但是,标签的顺序排列不正确:

在 X 轴上看到序列 0,1,2,3,...,9,我该如何解决?

hist函数更适合数值型变量。在您的情况下,标签是字符串,numpy 将其视为 object 。我宁愿使用 bar.

import numpy as np

unique, counts = np.unique(Y_train, return_counts=True)
plt.bar(unique, counts)
plt.xticks(unique)
plt.xlabel("Label")
plt.ylabel("Quantity")
plt.title("Labels in MNIST 784 dataset")