我在python中使用下面的代码绘制了一个3D图。这里使用三个数组x、y和z来绘制这幅图。我想显示图中数组的最后一点(或3D线的结束点)。我使用了在2d绘图中使用的方法,也就是说,我只要求使用这个命令ax.plot(x[-1],y[-1],z[-1],'o')绘制每个数组的最后一点。但不起作用。
import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D # noqa: F401 unused import
x=np.linspace(0,2*np.pi)
y=np.sin(x)
z=np.cos(x)
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot(x, y, z, lw=1)
ax.plot(x[-1],y[-1],z[-1],'o') # This line doesn't work
plt.show()发布于 2020-11-23 16:29:28
import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D # noqa: F401 unused import
x=np.linspace(0,2*np.pi)
y=np.sin(x)
z=np.cos(x)
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot(x, y, z, lw=1)
ax.scatter(x[-1],y[-1],z[-1],'-') # This should do the job
plt.show()添加颜色和标签
ax.scatter(x[-1],y[-1],z[-1],'-',c="yellow",label="End Point")
plt.legend()
plt.show()
关于为什么出现错误的其他解释
你告诉python画一个1分的ax.plot。这是不可能的,因为您不能只使用1分绘制line。因此,您告诉它绘制一个scatter。
https://stackoverflow.com/questions/64972104
复制相似问题