matplotlib hexbin 中的零值颜色

16 投票
1 回答
7876 浏览
提问于 2025-04-16 14:15

我有一些空间分布的数据。我正在用 matplotlib.pyplot.hexbin 来绘制这些数据,并且想要改变“背景”(也就是零值)的颜色。下面是一个例子 - 我选择的颜色映射是 matplotlib.cm.jet

示例数据

我该如何把基础颜色从蓝色改成白色呢?我之前在使用 pcolormesh 时做过类似的事情,使用了掩码数组,但在 hexbin 的参数中找不到这样做的方法。我觉得可以直接编辑颜色映射,但我对这方面的经验不多。

我使用的是 matplotlib 版本 0.99.1.1

1 个回答

22

hexbin(x,y,mincnt=1) 这个函数可以解决你的问题。简单来说,你只想显示那些包含超过1个数据点的六边形。

from numpy import linspace
from numpy.random import normal
from pylab import hexbin,show

n = 2**6

x = linspace(-1,1,n)
y = normal(0,1,n)

h = hexbin(x,y,gridsize=10,mincnt=0)

这样做会得到如下结果,

Bins with zero counts included

而使用 h = hexbin(x,y,gridsize=10,mincnt=1) 则会得到,

Bin count starts at one

撰写回答