使用rgba-value Python的Matplotlib色点:O

时间:2015-09-01 08:10:01

标签: python matplotlib plot colors rgb

我已经有一些数据图,我使用contourfcm.jet作为我的色彩图。 vmin = - 100和vmax = 100

我在另一个问题中读到我可以使用cm.jet(x)从我的色彩映射中访问特定颜色,其中x在[0,1]中。

我想得到47的颜色,所以我想我用

尝试
 fortyseven=pylab.cm.jet(0.735) 

这会返回47的 rgb值

然后我想用这个特定的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-value 转换为十六进制值会有效吗?

编辑

我刚刚意识到它将返回 rgba-value

2 个答案:

答案 0 :(得分:1)

您也可以在color命令中使用plot关键字,该命令接受任何matplotlib颜色,包括RGBA tuple,这是cm.jet(0.735)回报。

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

答案 1 :(得分: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-value 并绘制我的观点。