我已尝试过以下代码:
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'
。然而,他们并不那么令人满意。
任何人都可以帮助我?
答案 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