Python Matplotlib / Basemap颜色循环

时间:2014-03-27 01:38:26

标签: python matplotlib colormap

我是Python和其他程序的新手,我试图在集合成员上使用for循环绘制21个集合预测成员,每个成员都有一个专用的数字1-21。当我绘制地图时,成员都是蓝色的。我已经对彩色地图进行了一些研究,发现默认地图没有编入索引,即我无法将彩色地图[1]称为列表或数组。那里有没有索引的彩色图,或者有什么方法可以解决这个问题?简单地说,我想使用简单的数字循环遍历颜色,每个预测成员使用不同的颜色。

1 个答案:

答案 0 :(得分:2)

您可以使用ax.set_prop_cycle指定要循环的颜色列表。

Colormaps是可调用的,因此生成颜色的一种简单方法是将0到1之间的浮点序列传递给colormap,然后将返回RGBA颜色数组。

例如,

In [93]: jet = plt.cm.jet

In [94]: jet([0,0.5,1])
Out[94]: 
array([[ 0.        ,  0.        ,  0.5       ,  1.        ],
       [ 0.49019608,  1.        ,  0.47754586,  1.        ],
       [ 0.5       ,  0.        ,  0.        ,  1.        ]])

import matplotlib.pylab as plt
import matplotlib.rcsetup as rcsetup
import numpy as np

jet = plt.cm.jet
fig, ax = plt.subplots()
N = 20
idx = np.linspace(0, 1, N)
ax.set_prop_cycle(rcsetup.cycler('color', jet(idx)))
x = np.linspace(0, 100, 200)
for i in range(1, N+1):
    ax.plot(x, np.sin(x)+i)
ax.set_ylim(0, N+1)
plt.show()

enter image description here