Python:如何使用Python绘制3d图形?
我正在使用matplotlib来执行此操作Python:如何使用Python绘制3d图形?,python,matplotlib,Python,Matplotlib,我正在使用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='z
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()
现在,这将构建一个在三维空间中水平的图形。如何使图形垂直,使其面向用户
我想做的是构建多个这样的垂直图形,这些图形之间有一定距离,并且面向用户。根据文档,您需要使用
ax.plot\u surface(x,y,z)
方法。更多信息和图表类型
以下方面应起作用:
x = [1,2,3]
y = [4,5,6]
z = [7,8,9]
data = zip(x,y,z)
#map data on the plane
X, Y = numpy.meshgrid(arange(0, max(x), 1), arange(0, max(y), 1))
Z = numpy.zeros((len(Y), len(X)), 'Float32')
for x_,y_,z_ in data:
Z[x_, y_] = z_ #this should work, but only because x and y are integers
#and arange was done with a step of 1, starting from 0
fig = p.figure()
ax = p3.Axes3D(fig)
ax.plot_surface(X, Y, Z)
英国石油公司的答案可能行得通,但有一个更简单的方法 当前图形在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)
会将图形稍微放在后面)。Mayavi,特别是该模块,提供了强大的3D绘图功能,可以处理大型或复杂数据,在numpy阵列上应该很容易使用。您可以使用view_init()函数设置3d打印的视角。以下示例适用于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()
想想看,使用3D图形绘制2D数据不是有点愚蠢吗?我正在改变一个特定的参数alpha(不是x和y),并观察图表中alpha的各种值的变化