【问题标题】:Matplotlib's equivalent of Matlab's hsv(m)Matplotlib 相当于 Matlab 的 hsv(m)
【发布时间】:2017-07-29 23:04:45
【问题描述】:

我在R 集群中有积分。我想创建一个图形,迭代这些 R 集群,并在每次迭代 i 中,用颜色从集群 i 绘制点 (scatter),这将与颜色不同感知其他集群中的点数。

在 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

【问题讨论】:

标签: matplotlib colors


【解决方案1】:

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))

【讨论】:

    猜你喜欢
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多