我有两个数据数组,x和y。我想在散点图y和x上绘图。 x的范围是[0,3],y的范围是[-3,3]。然后,我想将此区域网格化为n×m网格,并根据单独的2D numpy数组(与网格形状相同,n乘m)的值为每个区域中的点着色。因此,我的绘图的最左上方网格单元应根据colorarr [0] [0]的值进行着色,依此类推。有人对如何做到这一点有任何建议吗?到目前为止我发现的最接近的是:
2D grid data visualization in Python
不幸的是,这只是显示colorarr,而不是我想要显示的2D区域。
谢谢!
答案 0 :(得分:1)
我认为你想要的是一个二维直方图。 Matplotlib.pyplot让这很容易。
import numpy as np
import matplotlib.pyplot as plt
# Make some points
npoints = 500
x = np.random.uniform(low=0, high=3, size=npoints)
y = np.random.uniform(low=-3, high=3, size=npoints)
# Make the plot
plt.hist2d(x, y)
plt.colorbar()
plt.show()
答案 1 :(得分:1)
您可以通过设置extent
aspect
和imshow
关键字,仅从颜色数组中执行此操作
import matplotlib as plt
import numpy as np
zval = np.random.rand(100, 100)
plt.imshow(zvals, extent=[0,3,-3,3], aspect="auto")
plt.show()
你得到的是zval
阵列,只是“蜷缩在”[0:3, -3:3]
范围内。仅绘制zval
中的imshow
数组,以说服自己。