我有一个txt文件,其中包含具有N
行和M
列的矩阵。我想创建某种表面图,在其中我可以看到N
不同的曲线,每个曲线都绘制了该行中的所有元素。
head output.txt
0.001194 0.001184 0.001499 0.002410 0.002337 0.002323 0.001685 0.01194
0.002260 0.002152 0.002390 0.001305 0.001270 0.001303 0.001155 0.01194
0.001232 0.002307 0.002127 0.001672 0.002278 0.002427 0.002136 0.01194
0.001950 0.001359 0.001137 0.001168 0.001208 0.001189 0.002564 0.01194
0.002334 0.002345 0.002461 0.002223 0.002138 0.002352 0.001299 0.01194
0.001320 0.001184 0.001239 0.001466 0.002454 0.002349 0.002383 0.01194
我当前正在使用的代码
import numpy as np
import matplotlib.pyplot as plt
data = np.loadtxt('output.txt')
X = np.arange(len(data))
plt.plot(X, data)
plt.show()
但这只会生成2D图。
我也尝试了以下方法:
from mpl_toolkits.mplot3d import Axes3D
nx = len(data)
ny = len(data[0])
x = range(nx)
y = range(ny)
hf = plt.figure()
ha = hf.add_subplot(111, projection='3d')
X, Y = np.meshgrid(x, y)
ha.plot_surface(X, Y, data)
但是这会导致错误
ValueError: shape mismatch: objects cannot be broadcast to a single shape