簡體   English   中英

如何在 python 中以像素數為 x 軸,灰度顏色為 y 軸 plot 圖形?

[英]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?

我下載了 MNIST 數據集和 plot 數據集的第一張圖像,其中 imshow function 是灰度的。 這是我的代碼。

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')

我得到了這個數字

在此處輸入圖像描述

將二維圖像向量重塑為一維向量后,我想將 plot 變成這樣的圖。

在此處輸入圖像描述

x 軸表示像素數,y 軸表示其像素值作為灰度顏色,plot 就是這樣,光譜之類的。 我知道如何重塑矢量,但我不知道如何制作 plot。 我可以在 matplotlib 模塊中使用 function 使 plot 像第二個一樣嗎? 還是在某個地方?

您是否正在尋找類似以下代碼的內容。 我想象了mnist數字麻木

#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()

Output 是在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM