我有六角形分类数据,并使用C = vel按速度颜色代码。这工作正常,但我想要一个计算的标准偏差列表和每个六芒星中的对象数量列表。我用:
imageh=plt.hexbin(x,y,C=vel,extent[np.min(x),np.max(x),np.min(y),np.max(y)],alpha=0.7,gridsize=20,cmap=get_cmap("jet"),reduce_C_function=np.std,mincnt=5)
cbar=plt.colorbar(imageh,extend='max')
'reduce_C_function = np.std'给出了每个六芒星的速度标准偏差(vel),这就是我想要的,但我也想让它将矢量打印到屏幕上。坐标x和y可以通过以下方式检索:
bv=imageh.get_paths()
for j in xrange(len(bv)):
xav=np.mean(bv[j].vertices[0:6,0])
yav=np.mean(bv[j].vertices[0:6,1])
我以为我可以使用get_array和get_offset获取每个六边形中的项目数:
counts=imageh.get_array()
verts=imageh.get_offsets()
但我的get_offsets()创建一个空向量,get_array()似乎返回每个六边形的平均速度值....我的速度值'vel'是5513项长,count = imageh.get_array()返回146值与我的速度相同。我再次运行三次以确保在第三次尝试时get_array()返回标准偏差范围内的146个值。如果这是真的,将解决部分问题。
我想要的是速度的计算标准偏差...在图像的颜色条上使用的'reduce_C_function'的输出。我也想要在每个六芒星中找到的数字。目标是为每个六芒星取每个标准差,除以该六芒星中的点数并创建加权标准差。通过运行原始图像我可以单独得到六角星中的点数:
imageh=plt.hexbin(x,y,extent[np.min(x),np.max(x),np.min(y),np.max(y)],alpha=0.7,gridsize=20,cmap=get_cmap("jet"),mincnt=5)
然后使用get_array(),但我一直认为有一种方法可以从原始语句中获取每个hexbin中的项目数?另外,作为一个额外的复杂因素,如果你在速度上包含一个np.mean过滤器(第一个例子),点数和分档的数量会略有不同....所以直接从查询中选择每个六边形中的数字将是最好的。 / p>