备注
前往结尾 下载完整示例代码。
3D 茎#
3D 茎图演示,它从基线绘制垂直线到 z 坐标,并在顶端放置一个标记。
import matplotlib.pyplot as plt
import numpy as np
theta = np.linspace(0, 2*np.pi)
x = np.cos(theta - np.pi/2)
y = np.sin(theta - np.pi/2)
z = theta
fig, ax = plt.subplots(subplot_kw=dict(projection='3d'))
ax.stem(x, y, z)
plt.show()

基线的位置可以使用 bottom 进行调整。参数 linefmt、markerfmt 和 basefmt 控制绘图的基本格式属性。然而,与 plot 不同,并非所有属性都可以通过关键字参数进行配置。对于更高级的控制,请调整由 stem 返回的线条对象。
fig, ax = plt.subplots(subplot_kw=dict(projection='3d'))
markerline, stemlines, baseline = ax.stem(
x, y, z, linefmt='grey', markerfmt='D', bottom=np.pi)
markerline.set_markerfacecolor('none')
plt.show()

可以使用 orientation 改变茎和基线的方向。这决定了茎从头部点向 底部 基线投影的方向。
例如,通过设置 orientation='x' ,茎部沿 x 方向投影,基线位于 yz 平面中。
fig, ax = plt.subplots(subplot_kw=dict(projection='3d'))
markerline, stemlines, baseline = ax.stem(x, y, z, bottom=-1, orientation='x')
ax.set(xlabel='x', ylabel='y', zlabel='z')
plt.show()