2017-07-29 58 views
0

我在R集群中有点。我想创建一个图形,迭代这些R集群,并在每个迭代i中,从集群i中绘制点(scatter),颜色将为,感知与其他集群中的点的颜色不同。Matplotlib的等效Matlab的hsv(m)

在八度/ Matlab的,我只是做

colors = hsv(R); 
figure; hold on; 
for i = 1:R 
    ... 
    c = colors(i,:); 
    % draw with color c 
    ... 
end 

并在每行/设置点会从别人的所得数值容易区分。我在Matplotlib中错过了这个神奇的hsv(n)函数。我很惊讶我无法在不到5分钟的时间内通过Matplotlib谷歌搜索,因此希望它可以作为其他懒惰的参考。

编辑:

@ImportanceOfBeingErnest是正确的。此外,与Matlab不同,Matplotlib为每个绘图操作分配不同的颜色: https://stackoverflow.com/a/16006929/214720

+0

我[谷歌它](http://www.google.de/search?q=matplotlib+hsv+colormap)。 – ImportanceOfBeingErnest

回答

2

matplotlib中的hsv颜色映射被命名为(哦,想知道)hsv。有关所有色彩映射的参考,请参阅Colormap reference

请注意,matplotlib中的颜色映射范围介于0和1之间。因此,您可能需要规范输入以应用颜色映射。

import matplotlib.pyplot as plt 
import numpy as np 

R = np.linspace(0,1) 
color=plt.cm.hsv(R) 
在不到一分钟的

R = np.linspace(-3,42) 
norm= plt.Normalize(-3,42) 
color=plt.cm.hsv(norm(R))