- 积分
- 56665
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-6-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 MeteoInfo 于 2017-3-6 11:34 编辑
当绘制大量散点的时候会有很多点压盖在一起,这时候可以通过散点密度色阶来区分散点分布的密度。散点密度是指点在某个位置出现的频次,某个位置通常是一个小区域,因此可以将散点分布的整个大区域分成小的矩形区域,然后计算每个矩形区域中点的个数。MeteoInfoLab中的griddata函数的功能是将散点格点化,其中method参数设为'inside_count'即可计算每个格点的散点数目,其返回值前三个参数是格点数据,第4个参数是散点数据的密度值(散点所在网格的密度即该散点的密度)。argsort函数获得数组排序的索引数组,可以用来对散点数据数组进行排序,以保证密度大的点后绘制(不会被密度小的点压盖)。
 - #Create normal distribution point data
- x = random.randn(10000)
- y = x * 3 + random.randn(10000)
- #Calculate point density
- x_g = linspace(x.min(), x.max(), 100)
- y_g = linspace(y.min(), y.max(), 100)
- z1,x1,y1,z = griddata((x,y), None, xi=(x_g, y_g), method='inside_count')
- #Sort the points by density, so that the densest points are plotted last
- idx = argsort(z)
- x = x[idx]
- y = y[idx]
- z = z[idx]
- #Plot scatter point colored by density
- ls = scatter(x, y, s=4, c=z, edgecolor=None, cnum=20)
- colorbar(ls)
- title('Scatter density plot example')
|
评分
-
查看全部评分
|