Python 如何将数据值转换为matplotlib的颜色信息?

Python 如何将数据值转换为matplotlib的颜色信息?,python,colors,numpy,matplotlib,scipy,Python,Colors,Numpy,Matplotlib,Scipy,我正在使用matplotlib.patches.Polygon类在地图上绘制多边形。实际上,有关多边形角点坐标的信息以及每个多边形的浮点数据值都是给定的。 现在,我想将这些从0到3e15的数据值转换为颜色信息,以便很好地可视化。在Python中这样做的最佳实践是什么 我的代码片段: poly = Polygon( xy, facecolor=data, edgecolor='none') plt.gca().add_patch(poly) 在RGB颜色系统中,每种颜色(红色、绿色和蓝色)使用两

我正在使用matplotlib.patches.Polygon类在地图上绘制多边形。实际上,有关多边形角点坐标的信息以及每个多边形的浮点数据值都是给定的。 现在,我想将这些从0到3e15的数据值转换为颜色信息,以便很好地可视化。在Python中这样做的最佳实践是什么

我的代码片段:

poly = Polygon( xy, facecolor=data, edgecolor='none')
plt.gca().add_patch(poly)

在RGB颜色系统中,每种颜色(红色、绿色和蓝色)使用两位数据。这意味着每种颜色都以0到255的比例运行。黑色为00,00,00,白色为255255。Matplotlib有许多预定义的颜色映射供您使用。它们都被标准化为255,因此它们从0运行到1。因此,您只需规范化数据,然后就可以按如下方式从颜色贴图中手动选择颜色:

>>> import matplotlib.pyplot as plt

>>> Blues = plt.get_cmap('Blues')
>>> print Blues(0)
(0.9686274528503418, 0.9843137264251709, 1.0, 1.0)
>>> print Blues(0.5)
(0.41708574119736169, 0.68063054575639614, 0.83823145908467911, 1.0)
>>> print Blues(1.0)
(0.96555171293370867, 0.9823452528785257, 0.9990157632266774, 1.0)

若你们有兴趣创建你们自己的彩色地图,这里有所有这些,这是一个很好的例子。另外还有一篇来自IBM的关于仔细选择颜色的论文,如果您使用颜色来可视化数据,您应该考虑这一点。

将从0到+无穷大的值转换为从0.0到1.0的值

import matplotlib.pyplot as plt

price_change =  price_change ** 2 / (1 + price_change ** 2)
Blues = plt.get_cmap('Blues')
print Blues(price_change)

这里有一个完整的颜色映射列表:

来自helpmatplotlib.pyplot.plot:您可以用许多奇怪的方式指定颜色,包括全名“green”、十六进制字符串“008000”、RGB或RGBA元组0,1,0,1或灰度强度作为字符串“0.8”。我想您要找的是颜色映射。有关使用matplotlib提供的工具的信息,请参阅以下文章。如果你想做你自己的,下面的页面提供了一个很好的例子。我很困惑,256是2**8,也许你的意思是每种颜色8位=1字节的数据?