Matplotlib,如何将数组表示为图像?

Ric*_*lev 1 python arrays matplotlib

这是我迄今为止尝试过的

import itertools
import numpy as np
import matplotlib.pyplot as plt

with open('base.txt','r') as f:
    vst = map(int, itertools.imap(float, f))

v1=vst[::3]
print type(v1)

a=np.asarray(v1)
print len(a)
a11=a.reshape(50,100)

plt.imshow(a11, cmap='hot')
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)

我有 (50,100) 数组,每个元素都有数值(范围 1200-5400)。我想要代表数组的图像。但我得到了这个 在此处输入图片说明

我应该改变什么以获得正确的图像?

Ani*_*l_M 6

我没有来自base.txt.
但是,为了模拟您的问题,我在之间1500 to 5500创建了随机数并创建了一个50 x 100 numpy array,我认为这与您的数据和要求很接近。

然后我只是根据您的绘图代码绘制了数据。我得到了数组的真实表示。看看这是否有帮助。

演示代码

#import itertools
import numpy as np
from numpy import array
import matplotlib.pyplot as plt
import random


#Generate a list of 5000 int between 1200,5500
M = 5000
myList = [random.randrange(1200,5500)  for i in xrange(0,M)]

#Convert to 50 x 100 list
n = 50
newList = [myList[i:i+n] for i in range(0, len(myList), n)]

#Convert to 50 x 100 numpy array
nArray = array(newList)
print nArray

a11=nArray.reshape(50,100)
plt.imshow(a11, cmap='hot')
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)

阴谋 在此处输入图片说明