两个2D numpy数组

时间:2017-01-19 06:38:32

标签: python numpy matplotlib

import numpy as np
arr = np.random.random((10,10))

fig = plt.figure(figsize=(6, 3.2))

ax = fig.add_subplot(111)
plt.imshow(ar)

在上面的代码中,我可以看到2D numpy数组。我想绘制两个2D numpy数组之间的散点图(hexbin)。如何扩展此代码来执行此操作?

- 编辑:

arr_a
    [[2, 3]
    [3, 4]]

arr_b
    [[3, 5]
    [4, 6]]

例如,在这种情况下,我们有2个numpy数组,arr_a和arr_b。 2个阵列之间的散点图将逐点比较它们。逐点比较应如下所示:

2   3
3   5
3   4
4   6

,生成的散点图应如下所示: enter image description here

1 个答案:

答案 0 :(得分:3)

documentation of hexbinthis example所示,需要提供两个长度相同的1D数组plt.hexbin(x,y)。 您可以使用numpy.flatten()来获取2D数组中的那些。

import numpy as np
import matplotlib.pyplot as plt


n = 66
a = np.ceil(np.random.standard_normal((n,n))*n)
b = np.ceil(np.random.standard_normal((n,n))*n)+6.

plt.hexbin(a.flatten(),b.flatten(),gridsize=10)

plt.show()

enter image description here

n = 66; m = 4
a = np.ceil(np.random.standard_normal((n,n))*m)
b = np.ceil(np.random.standard_normal((n,n))*m)

hb = plt.hexbin(a.flatten(),b.flatten(),mincnt=1)
plt.colorbar(hb)
plt.show()

enter image description here