我已经阅读了有关此主题的一些问题,但是无法找到我的问题的具体答案。
让我们考虑下图:
我的目标只是更改地图的极限颜色,例如,在这种情况下,颜色地图从深红色变为深蓝色,假设我希望它从深绿色变为深蓝色。具体来说,我希望以与上述示例相同的连续方式,从颜色#244162
变为#DCE6F1
(蓝色的色调)。
如何做到这一点?
[编辑]
我尝试了以下代码:
import matplotlib.pyplot as plt
import matplotlib.colors as clr
some_matrix = ...
cmap = clr.LinearSegmentedColormap('custom blue', ['#244162','#DCE6F1'], N=256)
plt.matshow(some_matrix, cmap=cmap)
但是我得到了错误信息TypeError: list indices must be integers, not unicode
。
LinearSegmentedColormap
不采用颜色列表,它采用以下参数:
带有红色,绿色和蓝色条目的字典。每个条目应为x,y0,y1元组的列表,并在表中形成行。alpha的条目是可选的。
因此,您需要如上所述定义一个字典,或者在您的情况下,我想您只想使用该LinearSegmentedColormap.from_list()
方法:
import matplotlib.pyplot as plt
import matplotlib.colors as clr
import numpy as np
some_matrix = np.random.rand(10,10)
cmap = clr.LinearSegmentedColormap.from_list('custom blue', ['#244162','#DCE6F1'], N=256)
plt.matshow(some_matrix, cmap=cmap)
plt.show()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句