我正在尝试检索 matplotlib 热图上每个单元格的颜色,该热图由imshow()
功能,例如由magic_function
below:
import matplotlib.pyplot as plt
import numpy as np
hm = plt.imshow(np.random.rand(10, 10))
color_matrix = hm.magic_function() #returns matrix containing the RGB/Hex values of each cell
您正在寻找通过创建的图像使用的颜色图imshow
。当然,现在您可以像其他答案所建议的那样,对颜色图如何进入图像进行逆向工程。这看起来很麻烦,而且常常是不可能的。
所以给定一个AxesImage
(返回的对象imshow
)或就此而言任何其他ScalarMappable
,您可以通过以下方式获取正在使用的颜色图.cmap
。由于数据值已标准化为 0..1 之间的范围,因此您需要进行标准化,该标准化可以从.norm
属性。最后,您需要从以下位置获得的数据.get_array()
method.
The magic_function
因此是一个由三个函数组成的链。
im = plt.imshow(np.random.rand(10, 10))
color_matrix = im.cmap(im.norm(im.get_array()))
color_matrix
现在是与图像中的像素相对应的 (10, 10, 4) 形状的 RGBA 颜色数组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)