【问题标题】:How to bind a colormap to an array?如何将颜色图绑定到数组?
【发布时间】:2019-07-06 04:30:20
【问题描述】:

我想从一个数组值开始得到一个颜色数组。

例如:

a = [4,3,2,5,6,20,1,34]

我希望有一个新数组,其颜色类似于 matplotlib 的 viridis cmap,其中小数字与深色绑定(相同索引),大数字与浅色绑定。

【问题讨论】:

  • 这些数字与颜色有何关系?
  • 没有特别的关系,我只对数组中较高数字的浅色感兴趣。就像热图一样。

标签: python arrays matplotlib colors


【解决方案1】:

您可以使用matplotlib.pyplot.Normalize,以便在输入绘图函数时将数据标准化为[0-1] 区间。 这是使用标准化范围的示例

a = [4,3,2,5,6,20,1,34]
# An example colormap
colormap = plt.cm.cool 
# Normalize using the min and max values in a
normalize = plt.Normalize(vmin=min(a), vmax=max(a))
# scatter plot with the parameters defined above
plt.scatter(range(len(a)), y=a, c=a, cmap=colormap, marker='o')

请注意,您必须使用a 作为matplotlib.pyplot.scatter 中的c 参数,文档中提到的接受:

颜色、顺序或颜色顺序,可选

因此,这样您将使用数组a 从颜色图中选择值,这些值又将由a 中的,axmin 值标准化。

【讨论】:

  • 谢谢!我需要 plt.scatter 返回的内容。
【解决方案2】:

您可以像这样简单地制作一个包含 rgb 颜色的数组:

colors = ["rgb(0, 0, 0)"]

每个可能的数字都可以在数组中有一个条目。因此,本例中的数字 0 将返回黑色的 rgb。

【讨论】:

    猜你喜欢
    • 2021-04-01
    • 1970-01-01
    • 2016-03-21
    • 2016-08-03
    • 2016-05-02
    • 2020-05-22
    • 2013-03-28
    • 2019-09-15
    • 2020-05-24
    相关资源
    最近更新 更多