2013-01-13 95 views
1

Matplotlib只定義了以下基本色:如何在matplotlib中添加自定義顏色字母?

•b: blue 
•g: green 
•r: red 
•c: cyan 
•m: magenta 
•y: yellow 
•k: black 
•w: white 

我想定義更多的自定義顏色的字母,如

mc1 = RGB(164,106,228) 
mc2 = RGB(220,170,114) 
mc3 = RGB(249,85,132) 

然後我可以定義

my_color_list = ['g','r','y','b','c','m','k', 'mc1','mc2','mc3'] 

然後my_color_list可用於以下演示:

import matplotlib.pyplot as plt 
dt = [1,2,3,4,5,6,7,8,9] 
my_color_list = ['g','r','y','b','c','m','k', 'mc1','mc2','mc3'] # not valid 
bar(range(len(dt)),dt,color=my_color_list) 
plt.show() 

那麼如何在matplotlib中定義自定義顏色字母?或者,如果我有一個RGB元組列表,如何將RGB元組與基本顏色字母組合在一起,並將其分配給'plot'/'bar'命令的'color'參數?

回答

1

matplotlib支持許多方式來指定顏色。除了基本顏色之外,您還可以使用CSS顏色十六進制代碼,Web顏色名稱和RGB值。

  • 十六進制代碼:Python字符串,例如'#d2691e'
  • Web顏色名稱:Python字符串,例如'chocolate'
  • RGB值:一個Python元組,按RGB的順序排列:(0.824, 0.412, 0.118)。這些組件應該歸一化到[0,1]之內。
  • 灰度:給出灰度的Python字符串,例如'0.7'

每當需要顏色時,可以像使用標準的單字母顏色名稱一樣使用這些表單。

請參見:http://matplotlib.org/api/colors_api.html

+1

我明白了。謝謝。我可以用color_list = ['g','r','y','b','c','m','k',(0.976,0.333,0.518),(0.643,0.416,0.894 ),(0.863,0.667,0.447)] – bigbug

1

另一種可能性是直接編輯matplotlib顏色列表,使用

import matplotlib 
matplotlib.colors.ColorConverter.colors['mc1'] = (0.976,0.333,0.518) 

我會小心使用這個選項,不過,因爲它可以打破一些有用的matplotlib語法。例如,調用顏色'mo'可能會混淆它,因爲'o'可以表示標記樣式,'m'可以表示洋紅色。最好堅持使用當前未使用的單個字母,如a,e-j等。

1

您還可以定義自己的顏色詞典,如下面的MWE所示。

import matplotlib.pyplot as plt 

col = {'azure':(0.2,0.4,0.6), 'grey':(0.69,0.69,0.69), 'hotpink':(0.68,0.14,0.37), 'babyblue':(0.87,0.94,0.94)} 

ch = 'grey' 
plt.plot([1,2,3,4],color=col[ch]) 
plt.show() 
相關問題