Sklearn 使用matplotlib可视化数据

digits是一个手写数字的数据集,我们可以使用Python的数据可视化库,比如matplotlib,来查看这些手写数字图像。

示例

显示digits.images中的手写数字图像。

from sklearn import datasets

# 加载 `digits` 数据集
digits = datasets.load_digits()

# 导入 matplotlib
import matplotlib.pyplot as plt

# 设置图形大小(宽、高)以英寸为单位
fig = plt.figure(figsize=(6, 6))

# 设置子图形布局,如间隔之类... 
fig.subplots_adjust(left=0, right=1, bottom=0, top=1, hspace=0.05, wspace=0.05)

# 对于64幅图像中的每一幅
for i in range(64):
    # 初始化子图:在8×8的网格中,在第i+1个位置添加一个子图
    ax = fig.add_subplot(8, 8, i + 1, xticks=[], yticks=[])
    # 在第i个位置显示图像
    ax.imshow(digits.images[i], cmap=plt.cm.binary, interpolation='nearest')
    # 用目标值标记图像
    ax.text(0, 7, str(digits.target[i]))

# 显示图形
plt.show()

输出

图

我们也可以使用digits.target中的目标值标记digits.images图像格式的样本数据,并显示。

示例

显示digits.images中的前8个手写数字图像,并用对应的目标值标记图像。

from sklearn import datasets

# 加载 `digits` 数据集
digits = datasets.load_digits()

# 导入 matplotlib
import matplotlib.pyplot as plt 

# 把图像和目标标签组合成一个列表
images_and_labels = list(zip(digits.images, digits.target))

# 对于列表(前8项)中的每个元素
for index, (image, label) in enumerate(images_and_labels[:8]):
    # 在第i+1个位置初始化一个2X4的子图
    plt.subplot(2, 4, index + 1)
    # 不要画坐标轴
    plt.axis('off')
    # 在所有子图中显示图像
    plt.imshow(image, cmap=plt.cm.gray_r,interpolation='nearest')
    # 为每个子图添加一个标题(目标标签)
    plt.title('Training: ' + str(label))

# 显示图形
plt.show()

显示:

图



浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载