Jac*_*els 5 python matplotlib python-2.7 python-3.x colorbar
我正在尝试使用 pcolormesh 绘制 3 个填充坐标和值的一维数组。下面的数组只是示例,但它们遵循相同的原则。我有 3 个数组,一个用于 x 坐标,一个用于 y 坐标,一个用于它们的值(或 z)。每个索引对应一个位置。索引 0 对应于 x 1、y 1 和 z 6。这适用于所有索引。
x = [1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
y = [1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4]
z = [6,2,3,5,8,2,3,2,4,2,3,6,7,3,3,2]
plt.figure()
plt.pcolor(x,y,z)
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)
我也尝试过...
x = [1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
y = [1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4]
z = [6,2,3,5,8,2,3,2,4,2,3,6,7,3,3,2]
N = np.sqrt(len(x))
N = int(N)
np.reshape(x,(N,N))
np.reshape(y,(N,N))
np.reshape(z,(N,N))
plt.pcolormesh(x,y,c=z)
plt.show()
Run Code Online (Sandbox Code Playgroud)
似乎什么都不起作用。发送帮助
你的第二次尝试是正确的方向 - 除了两件事:
np.reshape
返回重塑后的数组,它不应用于数组参数。C
而不是小写c
所以这有效:
x = [1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
y = [1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4]
z = [6,2,3,5,8,2,3,2,4,2,3,6,7,3,3,2]
x = np.reshape(x,(4, 4))
y = np.reshape(y,(4, 4))
z = np.reshape(z,(4, 4))
plt.pcolormesh(x, y, z)
Run Code Online (Sandbox Code Playgroud)
然而,读起来更清晰的可能是这样的:
x, y = np.meshgrid(range(4), range(4))
z = [6, 2, 3, 5, 8, 2, 3, 2, 4, 2, 3, 6, 7, 3, 3, 2]
z = np.reshape(z, (4, 4))
plt.pcolormesh(x, y, z)
Run Code Online (Sandbox Code Playgroud)
meshgrid
这就是为此而设计的用例。
归档时间: |
|
查看次数: |
3902 次 |
最近记录: |