import matplotlib.pyplot as pltimport numpy as npplt.style.use('_mpl-gallery')# Make datan = 20x = np.sin(np.linspace(0, 2*np.pi, n))y = np.cos(np.linspace(0, 2*np.pi, n))z = np.linspace(0, 1, n)# Plotfig, ax = plt.subplots(subplot_kw={"projection": "3d"})ax.stem(x, y, z)ax.set(xticklabels=[], yticklabels=[], zticklabels=[])plt.show()
# 1、导入库import matplotlib.pyplot as pltimport numpy as np# 2、设置内置绘图样式plt.style.use('_mpl-gallery')# 3、生成数据n = 20 # 点的数量x = np.sin(np.linspace(0, 2*np.pi, n)) # 取 0 到 2π 之间均匀分布的 20 个值的正弦值,这些值从 0 到 1 再到 -1 再到 0 变化,形成一条正弦曲线。y = np.cos(np.linspace(0, 2*np.pi, n)) # 对应角度的余弦值,与 x 组合,(x, y) 实际上描绘了一个单位圆上的 20 个点z = np.linspace(0, 1, n) # 从 0 到 1 线性均匀分布的 20 个值,作为每个点的高度。# 4、创建一个图形 fig 和一个三维坐标轴 axfig, ax = plt.subplots(subplot_kw={'projection': '3d'})# 5、绘制三维茎叶图ax.stem(x, y, z)# 该方法会在每个 (x[i], y[i]) 位置画一条垂直于 xy 平面的线段,# 从底部(默认底部为 (x[i], y[i], 0))延伸到高度 z[i],并在顶端画一个圆点标记。# 由于这里的 x 和 y 构成一个圆,因此图形看起来是从圆上的点向上长出长短不一的茎(高度从 0 到 1 线性增加)。# 6、设置坐标轴刻度标签ax.set(xticklabels=[], yticklabels=[], zticklabels=[])# 将三个坐标轴的刻度标签设置为空列表# 7、显示图形plt.show()
总结:使用stem(x, y, z)函数绘制三维茎叶图(stem plot)。