matplotlib - 将 2D 数据转换为 3D 数据

时间:2021-07-11 03:03:52

标签: python matplotlib 3d

我在几个txt文件中有我的测量值(实际上我会有数百个文件,但为了演示绘图的想法,这里我只列出了3个文件,它们是d_401.txt、d_402.txt、d_403.txt ) 每个文件有 4 列和 256 行数据。

我想从这些文件中绘制 3D 曲面图/或等高线图。 在我的 3D 图中,x 轴通常是每个文件的第 1 列数据,z 轴是每个文件的第 4 列数据(z 值也需要在渐变中进行颜色编码),最后 y 轴是“从这三个文件中绘制的所有 xz 值在 y 方向上的排列。

如何为这个图生成python代码?我附上了我的早熟(据说全是错误代码) 感谢一百万!!!

import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

z_txt = np.array(['d_401.txt', 'd_402.txt', 'd_403.txt'])

zarray = np.zeros([z_txt.size])
y = np.arange(3)
x = np.zeros(256)
Z = np.zeros((len(y),len(x)))


for i in range(z_txt.size):
    zarray[i] = np.loadtxt(z_txt[i])
    x[i] = zarray[i,0]
    X, Y = np.meshgrid(x,y)
    Z[i] = zarray[i,3]
ax.plot_surface(X, Y, Z, cmap=cm.magma, shade=True, lw=3)

plt.show()

0 个答案:

没有答案
相关问题