Matplotlib相当于Matlab的hsv(m)

时间:2017-07-29 23:04:46

标签: matplotlib colors

我在R群集中有分数。我想要创建一个数字,迭代这些R群集,并在每次迭代i中,使用颜色从群集scatter中绘制点(i),这将是<\ n em>感知与其他集群中的点颜色不同。

在Octave / 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

1 个答案:

答案 0 :(得分:2)

matplotlib中的hsv colormap被命名为(哦,奇迹)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))