2

我将颜色条与默认的“jet”地图一起使用,并将其与“hexbin”一起使用。我的垃圾箱中的计数范围从 0 到大约 1500。问题是某些六边形垃圾箱中的最小值在 1 到 10 之间,而有些垃圾箱的计数为数百。这意味着在 jet 颜色图中,0 到 10 范围作为颜色 0 出现——即它与计数为 0 的 bin 无法区分。我希望那些小的值是可见的。如何使颜色图执行以下操作:确保大于或等于 N 的 bin 值具有“可见”,这意味着与颜色图中的 0 bin 值不同?

谢谢。

4

2 回答 2

3

一个快速的解决方法是尝试log(counts)在 hexbin 上绘制而不是计数 - 这将扩展比例,从而压缩较高的计数而不会压缩较低的计数。但请注意,您必须将可视化的值放在某个地方,log(counts)否则counts不经意的读者会不可避免地误解图表。

更好的方法可能是修改您正在使用的颜色图。内置地图或多或少地从“0”颜色线性变为“1”颜色。为了使较低的值比较高的值具有更多的颜色分布,您需要一个非线性颜色图。

为此,您可以尝试matplotlib.colors,特别是matplotlib.colors.LinearSegmentedColormap.from_listhttp://matplotlib.sourceforge.net/api/colors_api.html#matplotlib.colors.LinearSegmentedColormap.from_list

基本上,您输入“0”和“1”颜色(如蓝色->红色)和伽玛值。gamma > 1.0 会增加标尺下部的灵敏度。

如果没有尝试过,但类似:

import matplotlib.colors as colors
# colourmap from green to red, biased towards the blue end.
# Try out different gammas > 1.0
cmap = colors.LinearSegmentedColormap.from_list('nameofcolormap',['g','r'],gamma=2.0)

# feed cmap into hexbin
hexbin( ...., cmap=cmap )
于 2011-12-11T06:25:50.590 回答
0

此外,还可以mincnt选择在 hexbin 中设置最小计数,这会将小于此数字的所有 bin 留空。这使得在喷射配色方案中区分零计数和一计数变得非常容易。

hexbin( ...., mincnt=1)
于 2014-04-24T09:55:45.940 回答