( 图表 ) 3D 柱状长条图
这篇教学会介绍如何使用 matplotlib 将图表转换成 3D 的显示模式,并在 3D 图表里显示柱状长条图。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
import matplotlib
要进行本篇的范例,必须先加载 matplotlib 函数库的 pyplot 模组,范例将其独立命名为 plt。
import matplotlib.pyplot as plt
启用 3D 图表
如果使用 fig = plt.figure() 的方式建立图表,只要额外设定 projection='3d',就能将图表的显示模式设定为 3D 图表。
参考:使用 3D 图表
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6,6))
ax = plt.subplot(projection='3d') # 設定為 3D 圖表
plt.show()
使用 bar3d() 加入 3D 柱状长条图
使用 bar3d() 方法,能够在 3D 图表中,加入柱状长条图,常用的参数如下:
| 参数 | 说明 |
|---|---|
| x | x 轴的位置,可使用串列数据,设定单一数值表示所有数据点的 x 位置相同。 |
| y | y 轴的位置,可使用串列数据,设定单一数值表示所有数据点的 y 位置相同。 |
| z | z 轴的位置,可使用串列数据,设定单一数值表示所有数据点的 z 位置相同。 |
| dx | x 方向宽度,可使用串列数据,设定单一数值表示所有数据点的 x 方向宽度相同。 |
| dy | y 方向宽度,可使用串列数据,设定单一数值表示所有数据点的 y 方向宽度相同。 |
| dz | z 方向宽度,可使用串列数据,设定单一数值表示所有数据点的 z 方向宽度相同。 |
| color | 柱状长条图颜色。 |
| alpha | 柱状长条图透明度。 |
下方的程序码执行后,会在 3D 图表中加入逐渐变长的柱状长条图。
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6,6))
ax = plt.subplot(projection='3d')
x = [2,4,6,8,10]
y = 10
z = 1
ax.bar3d(x,y,z,dx=1,dy=1,dz=[1,2,3,4,5])
plt.show()
透过改变 x、y 的位置,就能够定义整张图片长条图出现的位置,下方的程序执行后,图表中会出现 15 个柱状长条图。
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6,6))
ax = plt.subplot(projection='3d')
x = [2,4,6,8,10]*3
y = [10]*5+[12]*5+[14]*5
z = 1
dz = [5,4,3,2,1,1,2,3,4,5,5,3,1,3,5]
ax.bar3d(x,y,z,dx=1,dy=1,dz=dz)
plt.show()
多组数据的 3D 柱状长条图
如果有多组数据,只要重复执行 bar3d() 的方法,就能够在图表中加入不同数据的柱状长条图。
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6,6))
ax = plt.subplot(projection='3d')
x = [2,4,6,8,10]
y1 = 10
y2 = 13
y3 = 16
z = 1
ax.bar3d(x,y1,z,dx=1,dy=1,dz=[5,4,3,2,1])
ax.bar3d(x,y2,z,dx=1,dy=1,dz=[1,2,3,2,1])
ax.bar3d(x,y3,z,dx=1,dy=1,dz=[1,4,3,2,4])
plt.show()
微信扫码关注
抖音扫码关注