【发布时间】:2013-09-25 13:28:41
【问题描述】:
我在使用 Matplotlib 颜色栏时遇到了一些麻烦,可能是我不理解文档(我不是以英语为母语的人)或其核心概念。
假设我有一个数据矩阵(形状,N*2)。我想制作这个数据的散点图,并添加一个基于标签列(N * 1)的配色方案,在浮点数中。我知道如何使用 colorbar 和 scalarmappable。
但是,我对此标签列中的一些枢轴值感兴趣,并且希望将这些值显示在颜色栏的某个有趣位置。例如,标签值为 0,我想将其放置在 1/3 位置或中间——在我选择的颜色栏中,它可以是白色或灰色。
但如果我理解正确的话,colorbar 只会从 [min, max] 中的原始数据中获取映射到 [0, 1] 中的数据数组。在这种情况下,我感兴趣的枢轴值最终会出现在某个随机位置,除非我非常仔细地定义了标准化函数。
所以要将我喜欢的白色作为我的枢轴值放在颜色条的中间,我必须定义标准化函数,它不仅可以标准化我的数据,而且还要使枢轴值位于 0.5 的位置.
对于我有限的 Matplotlib 经验,这是我知道的解决方案。
理想情况下,假设我有一列浮点数据,我可以选择一些枢轴值,并给它们一些特殊的位置。然后我将它们标准化并提供给颜色图。但是,颜色条可以为我之前定义的那些特殊位置设置特殊颜色。并获得一个带有正确刻度定位器和刻度标签的相应颜色条,指示我的特殊枢轴值。
我正在寻找一种更简单的方法(来自标准库),我可以使用它来实现这一目标。
【问题讨论】:
-
我害怕编码一个特殊的颜色图和仔细的规范化函数。我想要有可伸缩的颜色图和多规范功能。我想知道是否有人能理解我...
-
我会使用
LinearSegmentedColormapmatplotlib.org/api/… 这样您就可以将轴颜色放在您想要的任何位置。我会建议 trying 一些东西,然后编辑你的问题以包含代码。人们对代码的反应比对散文墙的反应更好(而且你的英语很好)。 -
啊哈,我只是想知道我在这里多久能得到回复。是的,我知道线性段颜色图。这是我要做的最后一件事,因为 matplotlib 中已经有一组可用的颜色条,但我只是想让它伸展,以便我可以在那里定位我的枢轴值。我希望使用 colorbrewer 颜色图。不管怎么说,还是要谢谢你。我马上给
linearsegmap打码。
标签: python matplotlib normalization colorbar