我在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
答案 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))