Cách hiển thị tỷ lệ phần trăm trong biểu đồ thanh trong python

Để bắt đầu, chúng ta cần xây dựng một biểu đồ xếp chồng. Hầu hết thời gian, biểu đồ Cột Xếp chồng dọc là tùy chọn tốt nhất, nhưng bạn cũng có thể sử dụng biểu đồ Thanh Xếp chồng nếu dữ liệu của bạn [hoặc nhãn dữ liệu] yêu cầu. Đối với ví dụ này, chúng ta sẽ xem xét dữ liệu bán hàng theo khu vực trong một vài năm

Để xây dựng biểu đồ từ dữ liệu này, chúng ta cần chọn nó

Sau đó, trong tab menu Chèn, trong phần Biểu đồ, chọn tùy chọn Cột xếp chồng từ nút Biểu đồ cột

Kết quả đầu tiên của bạn có thể không chính xác như bạn mong đợi

Trong ví dụ này, Excel đã chọn Vùng làm Trục X và Năm làm dữ liệu Chuỗi. Chúng tôi muốn hoàn toàn ngược lại, vì vậy hãy nhấp vào nút Chuyển hàng/cột

Bây giờ, chúng tôi có thứ gì đó gần hơn với những gì chúng tôi muốn – biểu đồ Cột xếp chồng với Năm trên Trục X

Nhận các mẹo và thủ thuật Excel mới nhất bằng cách tham gia bản tin

Andrew Roberts đã giải quyết các vấn đề kinh doanh với Microsoft Excel trong hơn một thập kỷ. Excel Tactics được dành riêng để giúp bạn thành thạo nó

Tham gia bản tin để cập nhật những bài viết mới nhất. Đăng ký và bạn sẽ nhận được hướng dẫn miễn phí với 10 phím tắt tiết kiệm thời gian

Biểu đồ thanh xếp chồng phần trăm gần giống như biểu đồ thanh xếp chồng. Các nhóm con được hiển thị chồng lên nhau, nhưng dữ liệu được chuẩn hóa để sắp xếp sao cho tổng của mỗi nhóm con là 100

# libraries
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc
import pandas as pd
 
# Data
r = [0,1,2,3,4]
raw_data = {'greenBars': [20, 1.5, 7, 10, 5], 'orangeBars': [5, 15, 5, 10, 15],'blueBars': [2, 15, 18, 5, 10]}
df = pd.DataFrame[raw_data]
 
# From raw value to percentage
totals = [i+j+k for i,j,k in zip[df['greenBars'], df['orangeBars'], df['blueBars']]]
greenBars = [i / j * 100 for i,j in zip[df['greenBars'], totals]]
orangeBars = [i / j * 100 for i,j in zip[df['orangeBars'], totals]]
blueBars = [i / j * 100 for i,j in zip[df['blueBars'], totals]]
 
# plot
barWidth = 0.85
names = ['A','B','C','D','E']
# Create green Bars
plt.bar[r, greenBars, color='#b5ffb9', edgecolor='white', width=barWidth]
# Create orange Bars
plt.bar[r, orangeBars, bottom=greenBars, color='#f9bc86', edgecolor='white', width=barWidth]
# Create blue Bars
plt.bar[r, blueBars, bottom=[i+j for i,j in zip[greenBars, orangeBars]], color='#a3acff', edgecolor='white', width=barWidth]
 
# Custom x axis
plt.xticks[r, names]
plt.xlabel["group"]
 
# Show graphic
plt.show[]

Chỉnh sửa. Sau nhận xét thú vị của Prakash, tôi đề xuất một sửa đổi nhỏ cho biểu đồ này để thêm chú giải

Chủ Đề