【问题标题】:How to set a colormap which can give me over 20 distinct colors in matplotlib?如何设置可以在 matplotlib 中为我提供 20 多种不同颜色的颜色图?
【发布时间】:2016-09-14 21:53:52
【问题描述】:

我试过下面的代码:

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'。然而,他们并不那么令人满意。

谁能帮帮我?

【问题讨论】:

    标签: python matplotlib plot colors colormap


    【解决方案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
    

    【讨论】:

    • 您的解决方案比 matplotlib cmap 更好,但仍然有一些看起来几乎相同的颜色。如何避免这种情况?
    猜你喜欢
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 2021-06-16
    相关资源
    最近更新 更多