Python的可視化庫matplotlib提供了豐富的繪圖函數,其中柱形圖是其中的一種。柱形堆疊圖則是將多個柱形圖疊在一起,用來比較不同組別內各個變量在總體中所占比例的變化。
首先需要導入matplotlib庫:
import matplotlib.pyplot as plt
接下來,我們需要定義x軸和y軸的數據:
x_data = [1, 2, 3, 4, 5] y_data1 = [10, 20, 30, 40, 50] y_data2 = [5, 15, 25, 35, 45] y_data3 = [15, 25, 35, 45, 55]
然后,我們使用bar函數繪制三個柱形圖,并設置堆積屬性:
plt.bar(x_data, y_data1, label='a') plt.bar(x_data, y_data2, bottom=y_data1, label='b') plt.bar(x_data, y_data3, bottom=[i+j for i,j in zip(y_data1,y_data2)], label='c') plt.legend() plt.show()
我們可以看到,圖形中三個柱形圖已經被成功地堆積起來。
除了基礎的堆積圖,我們還可以進一步美化圖形,使得其更具吸引力。比如說,我們可以設置不同的顏色來區分不同的組別:
plt.bar(x_data, y_data1, color='red', label='a') plt.bar(x_data, y_data2, bottom=y_data1, color='blue', label='b') plt.bar(x_data, y_data3, bottom=[i+j for i,j in zip(y_data1,y_data2)], color='green', label='c') plt.legend() plt.show()
我們還可以調整柱形的寬度,使得其更具可讀性:
plt.bar(x_data, y_data1, width=0.3, color='red', label='a') plt.bar(x_data, y_data2, bottom=y_data1, width=0.3, color='blue', label='b') plt.bar(x_data, y_data3, bottom=[i+j for i,j in zip(y_data1,y_data2)], width=0.3, color='green', label='c') plt.legend() plt.show()
最后,我們可以使用ylabel和title函數來為圖形添加標簽和標題:
plt.bar(x_data, y_data1, width=0.3, color='red', label='a') plt.bar(x_data, y_data2, bottom=y_data1, width=0.3, color='blue', label='b') plt.bar(x_data, y_data3, bottom=[i+j for i,j in zip(y_data1,y_data2)], width=0.3, color='green', label='c') plt.ylabel('Value') plt.title('Stacked Bar Graph') plt.legend() plt.show()
通過這些簡單的操作,我們可以輕松繪制出美觀、具有信息量的柱形堆疊圖。