如何用Python绘制3D柱形图
在本攻略中,我们将介绍如何使用Python和Matplotlib库绘制3D柱形图。我们将提供两示例,以帮助更好地理解如何绘制3D柱形图。
步骤一:导入要的库和模块
我们需要入Matplotlib库一些其他必要的库和模块。下面是导入这些库和模块的代码:
import matplotlib.pyplot as pltimport numpy as np
from mpl_toolkits.mplot3d import Axes3D
步骤二:创建数据
我们需要创建要绘制的数据。下面是创建数据的代码:
x = np([1 2, , 4, 5])
y = np.array([2, 3, 4, 5, 6])
z = np.array([0, 0, 0, 0, 0])
dx = np.ones(5)
dy = np.ones(5)
dz =.array1, 2, 3,4, 5])
在上面的代码中,我们创建了三个NumPy数组x
、yz
,它们分别表示3D柱形图中每个柱形的x、y和z坐标。我们还创建了三个NumPy数组dx
、dy
和dz
,它们分别表示每个柱形的宽度、深度和高度。
步骤三:绘制3D柱形图
我们可以使用Matplotlib库的bar3d
函数绘制3D柱形图。下面是绘制3D柱形图的代码:
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.bar3d(x, y, z, dx, dy, dz)
plt.show()
在上面的代码中,我们首先创建一个对象和一个
Axes3D对象。然后,我们使用
bar3d函数绘制3D柱形图,并使用
show`函数显示结果。
示例一:绘制简单的3D柱形图
下面是绘制简单的3D柱形图的完整代码:
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
# 创建数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3 4, 5, 6])
z = np.array([0, 0, 0, 0, 0])
dx = np.ones(5)
dy = np.ones(5)
dz = np.array([1, 2, 3, 4, 5])
# 绘制3D柱形图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.bard(x, y, z, dx, dy, dz)
# 显示结果
plt.show()
在上面的代码中,我们首先创建了要绘制的数据。然后,我们使用Matplotlib库的bar3d
函数绘制3D柱形图,并使用show
函数显示结果。
示例二:绘制多个3D柱形图
下面是绘制多个3D柱形图的完整代码:
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
# 创建数据
x1 = np.array([1, 2, 3, 4, 5])
y1 = np.array([2 3, 4, 5, 6])
z1 = np.array([0, 0, 0, 0, 0])
dx1 = np.ones(5)
dy1 = np.ones(5)
dz1 = np.array([1, 2, 3, 4, 5])
x2 = np.array([7, 8, 9, 10, 11])
y2 = np.array([2, 3, 4, 5, ])
z2 = np.array([0, 0, 0, 0, 0])
dx2 = np.ones(5)
dy2 = np.ones(5)
dz2 = np.array([5, 4, 3, 2, 1])
# 绘制3D柱形图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.bar3d(x1, y1, z1, dx1, dy1, dz1)
ax.bar3d(x2, y2, z2, dx2, dy2, dz2)
# 显示结果
plt.show()
在上面的代码中,我们首先创建了两组要绘制的数据。然后,我们使用Matplotlib库的bar3d
函数绘制两个3D柱形图,并使用show
函数显示结果。
总结
本攻略介绍了如何使用Python和Matplotlib库绘制3D柱形图我们使用bar3d
函数绘制3D柱形图,并提供了两个示例,以帮助您更好地理解如何绘制3D柱形图。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何用Python绘制3D柱形图 - Python技术站