温馨提示:本文翻译自stackoverflow.com,查看原文请点击:python - How to extract data from plt.imshow() or plt.matshow()?
matplotlib python visualization

python - 如何从plt.imshow()或plt.matshow()提取数据?

发布于 2021-03-16 07:32:58
import numpy as np
import matplotlib.pyplot as plt 

data = np.random.random((10,10))
im = plt.imshow(data)
plt.axis('off')
plt.savefig("question2.png",bbox_inches='tight',pad_inches=0)
plt.show()

在此处输入图片说明

如何从plt.imshow()或plt.matshow()提取数据?

查看更多

提问者
GuokLiu
被浏览
0
swatchai 2020-11-22 09:35

要获得在matplotlib轴上绘制的图像的RGBA数组,首先,获取图像对象(在此处im3)。其次,获取其颜色图(此处为ccmap)。最后一步,将数据数组传递im3._Accmap

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

data = np.random.random((10,10))
# imshow or matshow is OK
#im3 = plt.imshow(data, cmap="viridis_r")  #any colormap will do
im3 = plt.matshow(data, cmap="viridis_r")
plt.axis('off')
#plt.savefig("question2.png",bbox_inches='tight',pad_inches=0)
plt.show()

# get the colormap used by the previous imshow()
ccmap = im3.get_cmap()
print(ccmap.name)  # 'viridis_r'

# get the image data ***YOU ASK FOR THIS***
img_rgba_array = ccmap(im3._A)

# plot the image data
ax = plt.subplot(111)
ax.imshow(img_rgba_array);  #dont need any cmap to plot

样例输出图:

img_data