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()
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~