2017-07-29 57 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))