Python 行的曲面图
我有一个txt文件,其中包含一个矩阵,其中包含Python 行的曲面图,python,matplotlib,Python,Matplotlib,我有一个txt文件,其中包含一个矩阵,其中包含N行和M列。我想创建一些曲面图,在这里我可以看到不同的曲线,每一条曲线都绘制该行中的所有元素 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
N
行和M
列。我想创建一些曲面图,在这里我可以看到不同的曲线,每一条曲线都绘制该行中的所有元素
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()
但这只是生成一个二维图
我还尝试了以下方法:
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
我让它工作了。问题出在
nx
和ny
中
nx = len(data[0])
ny = len(data)
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)
你能添加样本数据来重现你的例子吗?@RobJan添加了一个小样本数据。你可以在这里找到答案:@BossaNova谢谢!我以前到过那里,但不清楚你什么时候已经有了预定义的数据。@Manolete你的Z坐标在哪里?