Python 使用matplotlib绘制三维线图。TypeError:无法根据规则将数组数据从数据类型(';float64';)转换为数据类型(';S32';);安全';
这是我的代码:Python 使用matplotlib绘制三维线图。TypeError:无法根据规则将数组数据从数据类型(';float64';)转换为数据类型(';S32';);安全';,python,numpy,matplotlib,computer-science,Python,Numpy,Matplotlib,Computer Science,这是我的代码: 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.f
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时,它们都是正确的值。我不明白错误的意思。您的
x
,y
和z
变量是字符串列表(S32
)。plot\u线框
需要float
(float64
)。这里有一个更简单的解决方案。您也可以使用熊猫
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()
您的
x
、y
和z
变量是字符串列表(S32
)。plot\u线框
需要float
(float64
)。这里有一个更简单的解决方案。您也可以使用熊猫
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()
在问题中发布整个回溯始终是个好主意,而不仅仅是在问题标题中提供摘要。在问题中发布整个回溯始终是个好主意,而不仅仅是在问题标题中提供摘要。