import brewer2mpl
import numpy as np
a = np.random.rand(3) # a[0] represents value of rect1, a[1] of rect[2]....
def get_colors():
"""
Get colorbrewer colors, which are nicer
"""
bmap = brewer2mpl.get_map('Accent','qualitative',6)
return bmap.mpl_colors
rect1 = matplotlib.patches.Rectangle((2,2), 1, 1, color='yellow'))
ax.add_patch(rect1)
rect2 = matplotlib.patches.Rectangle((3,3), 1, 1, color='green'))
ax.add_patch(rect2)
rect3 = matplotlib.patches.Rectangle((5,5), 1, 1, color='red'))
ax.add_patch(rect3)
我希望矩形的顏色根據向量'a'的值而變化。而不是純黃色/綠色/紅色,選擇一個範圍內的顏色,最好是brewer2mpl顏色Python繪製矩形和範圍內的顏色
random.choice(序列)是另一個偉大的方式來獲得一個隨機選擇,但你不想在這裏使用它,因爲你可能得到重複的顏色! – jminuscula
謝謝,但我想根據範圍分配顏色。所以不是隨機分配,較低的值應該從較高的值獲得不同的顏色... – user308827
您的意思是不同的值應該分組到相同的顏色,所以值0 - 25將是紅色,26 - 50藍色等。檢查Joel的答案,你可以直接訪問並分配mpl_colors的顏色元組,你只需要找出與每個範圍對應的索引。 – jminuscula