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

Hyp*_*ube 14 python numpy colors matplotlib scipy

我使用matplotlib.patches.Polygon类在地图上绘制多边形.实际上,给出了关于多边形角的坐标和每个"多边形"的浮点数据值的信息.现在,我想将这些数据值(范围从0到3e15)转换为颜色信息,以便将其可视化.在Python中执行此操作的最佳做​​法是什么?

我的代码片段:

poly = Polygon( xy, facecolor=data, edgecolor='none')
plt.gca().add_patch(poly)
Run Code Online (Sandbox Code Playgroud)

Mr.*_*uig 24

在RGB颜色系统中,两位数据用于每种颜色,红色,绿色和蓝色.这意味着每种颜色的运行范围为0到255.黑色为00,00,00,而白色为255,255,255.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)
Run Code Online (Sandbox Code Playgroud)

以下是所有预定义的色彩映射.如果您对创建自己的色彩图感兴趣,是一个很好的例子.另外这里是IBM在精心选择的颜色,你应该如果你使用彩色可视化的数据来考虑的论文.

  • 我很困惑,256 是 2**8,也许你的意思是 8 位 = 每种颜色 1 字节的数据? (2认同)

Dav*_*jad 5

将从 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)
Run Code Online (Sandbox Code Playgroud)

颜色图的完整列表位于: http: //matplotlib.org/users/colormaps.html