最初遇到这个问题的时候,找到的大答案是绘制contour图,比如:
http://stackoverflow.com/questions/24119920/how-to-plot-a-density-map-in-python?rq=1
这当然很漂亮,但是这需要有三列数字来标示一个平面;但其实我的问题是仅有两列数的时候如何标示密度:
方法一,使用hist2d:
例子来源: http://matplotlib.org/examples/pylab_examples/hist2d_log_demo.html
from matplotlib.colors
import LogNorm
from pylab import *
#normal distribution center at x=0 and
y=5
x =
randn(100000)
y = randn(100000)+5
hist2d(x, y, bins=40,
norm=LogNorm())
colorbar()
show()
方法二,使用hexbin
参见这个例子:http://matplotlib.org/examples/pylab_examples/hexbin_demo.html
方法三,使用gaussian_kde
关于gaussian_kde的介绍可以参见这里