import matplotlib.pyplot as pltimport numpy as npplt.style.use('_mpl-gallery')# Make datax = [1, 1, 2, 2]y = [1, 2, 1, 2]z = [0, 0, 0, 0]dx = np.ones_like(x)*0.5dy = np.ones_like(x)*0.5dz = [2, 3, 1, 4]# Plotfig, ax = plt.subplots(subplot_kw={"projection": "3d"})ax.bar3d(x, y, z, dx, dy, dz)ax.set(xticklabels=[], yticklabels=[], zticklabels=[])plt.show()
# 1、导入库import matplotlib.pyplot as pltimport numpy as np# 2、设置内置绘图样式plt.style.use('_mpl-gallery')# 3、准备数据x = [1, 1, 2, 2]y = [1, 2, 1, 2]z = [0, 0, 0, 0]dx = np.ones_like(x)*0.5dy = np.ones_like(x)*0.5dz = [2, 3, 1, 5]# x 和 y 分别表示每个条形在 X-Y 平面上的左下角位置。# 这里有四个条形,它们的左下角坐标分别为 (1,1)、(1,2)、(2,1)、(2,2)。# z 表示每个条形的底部高度(Z 轴起点),全部设为 0,因此所有条形都从底面开始。# dx 和 dy 分别表示每个条形在 X 轴方向的宽度和 Y 轴方向的深度。# 这里使用 np.ones_like(x) 生成与 x 长度相同的全 1 数组,再乘以 0.5,所以每个条形的宽度和深度都是 0.5。# dz 表示每个条形的高度,分别为 2、3、1、5。# 4、创建一个图形(figure)和一个 3D 坐标轴(axes)# subplot_kw={"projection": "3d"} 指定该子图为 3D 投影,这样才能使用 3D 绘图功能。fig, ax = plt.subplots(subplot_kw={'projection': '3d'})# 5、绘制3D条形图ax.bar3d(x, y, z, dx, dy, dz)# bar3d 函数的参数依次为:条形左下角的 X、Y、Z 坐标,宽度 (dx)、深度 (dy)、高度 (dz)。这里会根据传入的列表绘制 4 个条形。# 6、隐藏坐标轴上的刻度标签ax.set(xticklabels=[], yticklabels=[], zticklabels=[])# 7、显示绘制的图形plt.show()
使用bar3d(x, y, z, dx, dy, dz)函数绘制3D条形图。