Python - 用两个不同的维数阵绘制密度等值线

时间:2016-04-06 16:31:01

标签: python arrays multidimensional-array contour

我试图制作一个带有两个不同维数组的hexbin。

mass_msun = subhalos['SubhaloMass'] * 1e10 / 0.704 # in units of M_sol     h^-1
lam = (subhalos['SubhaloSpin'])

plt.plot(mass_msun,lam)
plt.xscale('log')
plt.yscale('log')
plt.ylabel('$\lambda$')
plt.xlabel('Subhalo Mass [$M_\odot$]')

这给了我一个很好的情节。

enter image description here

我想做什么,他从这个图中创建了一个二维密度轮廓。这里产生类似的东西:https://micropore.wordpress.com/2011/10/01/2d-density-plot-or-2d-histogram/

问题是,我有不同的维数组。 lam数组具有形状(121209,3),而mass_msun具有形状(121209,)。

我是否可以使用lam保留mass_sun的维度方面?或者我应该使用其他histogram2d的其他命令吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

最简单的方法仍然是重塑数据以符合直方图参数要求:

n_col = lam.shape[1]
H, xedges, yedges = np.histogram2d(np.tile(mass_msum, n_col), lam.flatten(), your_range, your_bins)