【问题标题】:How can I plot surface on mplot3d for data like (x,y,z)=(0,0,1),(0,0,2)如何在 mplot3d 上为 (x,y,z)=(0,0,1),(0,0,2) 等数据绘制表面
【发布时间】:2015-11-03 04:30:49
【问题描述】:

如何在 mplot3d 上绘制表面以获取类似的数据

(x,y,z)=(0,0,1),(0,0,2)......

我目前在 python 上使用 mplot3d,我有一个像

这样的散点数据

(x,y,z) = (0,1,3),(0,8,9),(1,5,24)......

我试过ax.scatter(xp,yp,zp),然后可以显示散点图。

但是当我尝试ax.plot_trisurf(xp,yp,zp) 获取所有数据,plt.show() 然后图表上什么都没有出现。

如何根据这些数据绘制曲面图?

任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 显示您感到疲倦以及遇到了什么错误?
  • 我有像 (0,1,3),(0,8,9),(1,5,24) 这样的数据......我试过 ax.scatter(xp,yp ,zp),然后可以显示散点图,但是当我对所有数据尝试 ax.plot_trisurf(xp,yp,zp) 和 plt.show() 时,图表上不会出现任何内容。非常感谢您的评论。

标签: python matplotlib plot


【解决方案1】:

正如您目前拥有的那样,x = (0,1,3)y = (0,8,9)z=(1,5,24)。我认为您实际上需要在坐标上使用zip

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt

x,y,z = zip((0,1,3),(0,8,9),(1,5,24))

print x
# (0, 0, 1)

print y
# (1, 8, 5)

print z
# (3, 9, 24)

fig = plt.figure()
ax = fig.gca(projection='3d')

ax.plot_trisurf(x, y, z, cmap=cm.jet, linewidth=0.2)
plt.show()

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    • 2013-09-20
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多