如何在matplotlib中设置一个可以给我20多种不同颜色的色彩图?

时间:2016-05-18 12:08:01

标签: python matplotlib plot colors colormap

我已尝试过以下代码:

number = 20
cmap = plt.get_cmap('gist_rainbow')
colors = [cmap(i) for i in np.linspace(0, 1, number)]

这可以生成一组颜色,但不是那么明显。事实上,最近的地块颜色几乎相同。我还根据http://matplotlib.org/examples/color/colormaps_reference.html尝试了'jet''nipy_spectral'。然而,他们并不那么令人满意。

任何人都可以帮助我?

1 个答案:

答案 0 :(得分:1)

您可以使用HLS颜色空间生成许多不同的颜色,而不是从matplotlib cmap中提取颜色。

特别是,不同的颜色取决于不同的色调。尝试这样的事情:

from colorsys import hls_to_rgb
import numpy as np 

def get_distinct_colors(n):

    colors = []

    for i in np.arange(0., 360., 360. / n):
        h = i / 360.
        l = (50 + np.random.rand() * 10) / 100.
        s = (90 + np.random.rand() * 10) / 100.
        colors.append(hls_to_rgb(h, l, s))

    return colors