2015-09-01 66 views
0

我已經有一些數據的圖,我使用contourfcm.jet作爲我的色圖。 vmin = -100和vmax = 100使用rgba-value Python的Matplotlib色點:O

我讀到另一個問題,我可以通過cm.jet(x)(其中x在[0,1]中)從我的色彩映射中訪問特定顏色。

我想47的顏色,所以我想嘗試它與

fortyseven=pylab.cm.jet(0.735) 

這將返回我的RGB值的47

然後我想繪製一個點這個具體的rgb值:

ax.plot(x, y, fortyseven) 

但是這不會奏效。我總是得到一個

ValueError: third arg must be a format string 

錯誤。

所以,我用

ax.plot(x, y, 'fortyseven') 

嘗試過了,我得到一個

ValueError: Unrecognized character f in format string 

錯誤。

那麼甚至有可能用rgb值給點着色?

還是我忽略了一些東西?

編輯

如果我轉換RGB值十六進制值將它的工作?

編輯

我剛剛意識到,它會返回一個RGBA值

回答

1

你也可以只使用color關鍵字在你plot命令,接受任何matplotlib顏色,包括RGBA tuple,這是什麼cm.jet(0.735)回報。

ax.plot(x, y, color = fortyseven) 
+0

這完全正是我想知道的。謝謝! – Peter

0

好吧,我做了一些研究,現在可以回答我自己的問題。

事實上,rgba中的alpha代表透明度,所以它不會影響顏色本身,只是它的透明度不夠。

所以基本上,你可以將alpha值切掉,而不會改變顏色本身。

甚至還有一個Python函數to_rgb其中有這個。

描述:

to_rgb(arg) 

Returns an RGB tuple of three floats from 0-1. 

arg can be an RGB or RGBA sequence or a string in any of several forms: 

    a letter from the set ‘rgbcmykw’ 
    a hex color string, like ‘#00FFFF’ 
    a standard name, like ‘aqua’ 
    a string representation of a float, like ‘0.4’, indicating gray on a 0-1 scale 

if arg is RGBA, the A will simply be discarded. 

所以現在我可以用RGB值工作,我的繪製點。