【问题标题】:How can I plot the figure with the number of pixel as a x-axis and the grayscale color as a y-axis in python?python - 如何在python中以像素数为x轴,灰度颜色为y轴绘制图形?
【发布时间】:2021-06-24 01:44:10
【问题描述】:

我下载了 MNIST 数据集并使用 imshow 函数以灰度绘制数据集的第一张图像。 这是我的代码。

import numpy as np
import matplotlib.pyplot as plt
import torch
import torchvision
from torchvision import transforms

# MNIST dataset 
transform = transforms.Compose([transforms.ToTensor()])
train_dataset = torchvision.datasets.MNIST(root='./data', 
                                           train=True, 
                                           download=True,
                                           transform=transform)

# Change data type : torch.Tensor -> numpy array
X = train_dataset.train_data.numpy()
y = train_dataset.train_labels.numpy()
print('Data size: ' + str(X.shape))

num_samples, height, width = X.shape 
dim = height * width

# Visualize MNIST data (1st digit)
plt.figure(1)
plt.imshow(X[0],cmap='gray_r')
plt.colorbar()
plt.title('1st image label: 5')

我得到了这个数字

将二维图像向量重塑为一维向量后,我想绘制 像这样的图。

x轴表示像素数,y轴表示其像素值为灰度颜色, 情节是这样的,有点像光谱。 我知道如何重塑矢量,但我不知道如何制作情节。 我可以用 matplotlib 模块中的函数制作第二个图吗?还是在某个地方?

【问题讨论】:

  • 如果您使用X[0].reshape((784, 1)) 而不是X[0].reshape(784),您应该能够像绘制原始 28x28 图像一样绘制图像,只是现在您的 y 轴只有 1 个像素强。 (我希望我没有误会这个问题)

标签: python numpy matplotlib plot pytorch


【解决方案1】:

您是否正在寻找类似以下代码的内容。我可视化mnist digit numb

#load digits using the module load_digits()
digits = datasets.load_digits()

#visualize digits : 25 in 2D visualization
plt.figure()
plt.imshow(digits.images[25], cmap = plt.cm.gray_r, interpolation = 'nearest')
plt.show()

输出是

【讨论】:

  • 那是二维图像。我正在寻找绘制第二个图的方法,标题为“第一个图像矢量”。我尝试使用 imshow 但它给出了一条黑线,而不是那样的图表。而且我认为您使用的是 Sklearn 数据集,但我必须使用具有 numpy 形式的数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
  • 2015-11-15
  • 1970-01-01
  • 1970-01-01
  • 2018-01-26
  • 2022-01-14
相关资源
最近更新 更多