Python:如何使用Python绘制3d图形?

2024-06-01 12:53:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我用matplotlib做这个

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib
import matplotlib.pyplot as plt

fig = plt.figure()
ax = Axes3D(fig)

x = [6,3,6,9,12,24]
y = [3,5,78,12,23,56]

ax.plot(x, y, zs=0, zdir='z', label='zs=0, zdir=z')

plt.show()

现在,这将构建一个在三维空间中水平的图形。如何使图形垂直,使其面向用户?

我要做的是构建多个这样的垂直图,这些图之间有一定的距离,并面向用户。


Tags: fromimport图形matplotlibasfigpltax
3条回答

可以使用view_init()函数设置三维打印的视角。下面的示例是matplotlib的1.1版。

from mpl_toolkits.mplot3d import axes3d
import numpy as np
import matplotlib
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x = [6,3,6,9,12,24]
y = [3,5,78,12,23,56]

ax.plot(x, y, zs=0, zdir='z', label='zs=0, zdir=z')
ax.view_init(90, -90)
plt.show()

Mayavi,特别是mlab模块,提供了强大的3D绘图功能,可以处理大型或复杂的数据,并且应该易于在numpy数组上使用。

英国石油公司的回答也许可以,但有一个简单得多的方法。

当前图形在z轴上是“平面”的,这就是为什么它是水平的。你希望它是垂直的,这意味着你希望它在y轴上是“平的”。这涉及到对代码的最小修改:

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib
import matplotlib.pyplot as plt

fig = plt.figure()
ax = Axes3D(fig)

x = [6,3,6,9,12,24]
y = [3,5,78,12,23,56]
# put 0s on the y-axis, and put the y axis on the z-axis
ax.plot(xs=x, ys=[0]*len(x), zs=y, zdir='z', label='ys=0, zdir=z')
plt.show()

然后,通过对ys参数使用不同的值(例如,ys=[2]*len(x)反而会将图形稍微放在后面),您可以很容易地拥有多个这样的图形。

相关问题 更多 >