使用Matplotlib建立基礎堆疊長條圖
基本方法使用matplotlib的'bottom'參數將長條堆疊在一起:
使用Pandas建立堆疊長條圖
Pandas透過plot()方法讓堆疊長條圖變得異常簡單:
水平堆疊長條圖
對於長類別標籤或排名資料,使用水平堆疊長條圖:
100%堆疊長條圖(正規化)
透過將資料正規化到100%來顯示比例而非絕對值:
為堆疊長條圖添加資料標籤
在每個分段上顯示精確值以便準確讀取:
自訂顏色與樣式
控制堆疊長條圖的每個視覺方面:
- 自訂顏色:向color參數傳遞清單或使用colormap
- 邊緣顏色:添加edgecolor='black'設定長條邊框
- 透明度:使用alpha=0.8實現半透明長條
- 陰影圖案:添加hatch='/'實現紋理填充(無障礙存取)
- 調色盤:使用plt.cm.viridis或seaborn調色盤
處理大型資料集
當處理許多類別或大型資料集時,考慮以下技巧:
- 將類別限制為前N個值以提高可讀性
- 對於10個以上類別使用水平長條圖
- 將小分段聚合成「其他」類別
- 考慮使用Plotly進行互動式視覺化以探索資料
- 大型圖表儲存為向量格式(PDF/SVG)
常見陷阱與解決方案
在Python中建立堆疊長條圖時避免這些常見問題:
- bottom參數的NumPy陣列:將清單轉換為NumPy陣列以進行數學運算
- 圖例順序:使用handles[::-1]反轉圖例順序以匹配視覺堆疊順序
- 標籤擁擠:使用rotation=45使x軸標籤傾斜
- 長條重疊:確保所有資料系列長度相同
- 記憶體問題:建立多個圖表時使用plt.close()關閉圖形
ChartGen.ai:無程式碼替代方案
Python堆疊長條圖需要編碼知識與除錯時間。ChartGen.ai可即時建立相同的視覺化效果 - 貼上資料,獲得專業樣式的堆疊長條圖,匯出PNG。無需編寫程式碼即可進行快速分析,完美選擇。
- 無需安裝Python
- 跳過除錯與語法錯誤
- AI處理樣式與格式
- 即時PNG匯出
- 非常適合簡報與報告
常見問題
如何在Python中建立堆疊長條圖?
使用matplotlib的bottom參數:plt.bar(x, data1); plt.bar(x, data2, bottom=data1)。或者使用pandas:df.plot(kind='bar', stacked=True)。兩種方法都建立顯示各組成部分如何累加為總量的堆疊長條圖。
如何在Python中製作100%堆疊長條圖?
首先正規化資料:df_pct = df.div(df.sum(axis=1), axis=0) * 100。然後繪圖:df_pct.plot(kind='bar', stacked=True)。這會將每個長條顯示為100%,帶有比例分段。
matplotlib與pandas用於堆疊長條圖有什麼區別?
Pandas更簡單(一行程式碼:df.plot(kind='bar', stacked=True)),但靈活性較低。Matplotlib需要手動計算bottom參數,但提供更多自訂選項。快速繪圖用pandas,出版級圖表用matplotlib。
如何在Python中為堆疊長條圖分段添加標籤?
使用matplotlib 3.4+,用ax.bar_label(container, label_type='center')。遍歷ax.containers為每個堆疊分段添加標籤。對於舊版本,用plt.text()手動計算位置。
如何在Python中製作水平堆疊長條圖?
使用pandas:df.plot(kind='barh', stacked=True)。使用matplotlib:使用plt.barh()和'left'參數代替'bottom'。
有沒有不用Python就能建立堆疊長條圖的方法?
有的,ChartGen.ai無需任何編碼即可即時建立堆疊長條圖。貼上資料,AI生成專業樣式的圖表,即可匯出為PNG。
