这是我的代码:
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
with open("TestGraph.txt") as f:
data = f.read()
data = data.split('\n')
fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')
x = [row.split(' ')[0] for row in data]
y = [row.split(' ')[1] for row in data]
z = [row.split(' ')[2] for row in data]
ax.plot_wireframe(x, y,z)
plt.show()
TestGraph.txt是
1 2 3
3 4 5
5 6 7
7 8 9
9 1 8
当我打印出x,y,z时,它们都是正确的值。我不明白这个错误意味着什么。
答案 0 :(得分:0)
您的x
,y
和z
变量是字符串列表(S32
)。 plot_wireframe
期望float
(float64
)。这是一个更简单的解决方案。您也可以使用pandas
。
import numpy as np
import matplotlib.pyplot as plt
f = r"TestGraph.txt"
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
data = np.loadtxt(f)
x = data[:, 0]
y = data[:, 1]
z = data[:, 2]
ax.plot_wireframe(x, y, z)
plt.show()