要制作堆疊條形圖或百分比條形圖,可以使用Matplotlib的bar函數和bottom參數來實現。下面是一個示例代碼:
import matplotlib.pyplot as plt
# 數據
categories = ['A', 'B', 'C', 'D']
values1 = [20, 35, 30, 25]
values2 = [10, 15, 20, 25]
# 堆疊條形圖
plt.bar(categories, values1, label='Value 1')
plt.bar(categories, values2, bottom=values1, label='Value 2')
plt.legend()
plt.show()
在上面的代碼中,我們首先定義了兩組數據values1和values2,然后使用bar函數分別繪制了兩組數據的條形圖,并使用bottom參數將第二組數據堆疊在第一組數據上。
如果要將堆疊條形圖轉換為百分比條形圖,只需將每個數據值除以總和,并乘以100。下面是一個示例代碼:
import matplotlib.pyplot as plt
# 數據
categories = ['A', 'B', 'C', 'D']
values1 = [20, 35, 30, 25]
values2 = [10, 15, 20, 25]
# 計算百分比數據
total = [v1 + v2 for v1, v2 in zip(values1, values2)]
percent_values1 = [v1 / t * 100 for v1, t in zip(values1, total)]
percent_values2 = [v2 / t * 100 for v2, t in zip(values2, total)]
# 百分比條形圖
plt.bar(categories, percent_values1, label='Value 1', color='blue')
plt.bar(categories, percent_values2, bottom=percent_values1, label='Value 2', color='red')
plt.legend()
plt.show()
在上面的代碼中,我們首先計算了每組數據的百分比值,然后使用bar函數繪制了百分比條形圖。