TÓM TẮT
- 1 1. Giới thiệu chung về biểu đồ phần trăm
- 2 2. Các bước chuẩn bị dữ liệu
- 3 3. Vẽ biểu đồ phần trăm bằng Microsoft Excel
- 4 4. Vẽ biểu đồ phần trăm bằng Google Sheets
- 5 5. Vẽ biểu đồ phần trăm bằng Python
- 6 6. Nguyên tắc thiết kế biểu đồ phần trăm hiệu quả
- 7 7. Ứng dụng thực tiễn của biểu đồ phần trăm
- 8 8. Tự động hoá quy trình tạo biểu đồ phần trăm
- 9 9. Kiểm tra và xác nhận độ chính xác của biểu đồ
- 10 10. Kết luận
1. Giới thiệu chung về biểu đồ phần trăm
Biểu đồ phần trăm (percentage chart) là một trong những công cụ trực quan quan trọng nhất trong lĩnh vực thống kê và phân tích dữ liệu. Khi bạn muốn truyền tải một cách nhanh chóng và dễ hiểu tỷ lệ, tỉ mỉ hoặc tỷ lệ phần trăm của các thành phần trong một tập hợp, biểu đồ phần trăm là lựa chọn lý tưởng. Các loại biểu đồ phần trăm phổ biến bao gồm:
- Biểu đồ tròn (pie chart): Thể hiện tổng thể dữ liệu được chia thành các lát cắt, mỗi lát cắt đại diện cho một phần trăm.
- Biểu đồ cột phần trăm (stacked percentage bar chart): Hiển thị tỷ lệ phần trăm của các thành phần trong mỗi nhóm, với chiều cao cột luôn bằng 100%.
- Biểu đồ đường phần trăm (percentage line chart): Thích hợp cho việc theo dõi xu hướng thay đổi phần trăm theo thời gian.
- Biểu đồ vùng phần trăm (percentage area chart): Tương tự biểu đồ đường nhưng nhấn mạnh diện tích dưới đường, giúp so sánh tổng thể.
Việc lựa chọn loại biểu đồ phù hợp phụ thuộc vào mục tiêu truyền đạt, đối tượng độc giả và tính chất dữ liệu. Bài viết này sẽ hướng dẫn chi tiết cách vẽ từng loại biểu đồ phần trăm bằng các công cụ phổ biến như Microsoft Excel, Google Sheets, và Python (thư viện matplotlib, seaborn). Ngoài ra, chúng tôi sẽ cung cấp các lưu ý quan trọng về thiết kế, màu sắc, và cách tránh các lỗi thường gặp khi trình bày dữ liệu dưới dạng phần trăm.
2. Các bước chuẩn bị dữ liệu
2.1. Thu thập và làm sạch dữ liệu
Trước khi vẽ bất kỳ biểu đồ nào, bạn cần đảm bảo dữ liệu của mình đã được làm sạch và chuẩn hoá:
- Loại bỏ giá trị thiếu (missing values): Nếu có giá trị NULL hoặc NA, quyết định xem bạn sẽ loại bỏ dòng dữ liệu đó hay thay thế bằng giá trị trung bình, trung vị, hoặc một giá trị mặc định.
- Kiểm tra tính hợp lệ: Đảm bảo các giá trị phần trăm không vượt quá 100% (trừ trường hợp tổng cộng của nhiều nhóm có thể vượt 100%).
- Định dạng dữ liệu: Đối với Excel/Sheets, chuyển các cột số thành kiểu “Number” và đặt định dạng hiển thị là “Percentage” nếu cần.
- Tổng hợp dữ liệu: Đối với biểu đồ cột phần trăm, bạn cần tính tổng cho mỗi nhóm (ví dụ: doanh thu theo khu vực) và sau đó tính tỷ lệ phần trăm của từng thành phần trong nhóm.
2.2. Cấu trúc dữ liệu mẫu
| Nhóm (Group) | Danh mục (Category) | Giá trị (Value) |
|---|---|---|
| Khu vực A | Sản phẩm 1 | 120 |
| Khu vực A | Sản phẩm 2 | 80 |
| Khu vực B | Sản phẩm 1 | 150 |
| Khu vực B | Sản phẩm 2 | 50 |
| Khu vực B | Sản phẩm 3 | 100 |
Sau khi tính tổng và phần trăm:
| Nhóm | Danh mục | Giá trị | % Tổng |
|---|---|---|---|
| A | Sản phẩm 1 | 120 | 60% |
| A | Sản phẩm 2 | 80 | 40% |
| B | Sản phẩm 1 | 150 | 50% |
| B | Sản phẩm 2 | 50 | 16,7% |
| B | Sản phẩm 3 | 100 | 33,3% |
3. Vẽ biểu đồ phần trăm bằng Microsoft Excel

Có thể bạn quan tâm: Cách Vẽ Biểu Đồ Nội Lực: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
3.1. Vẽ biểu đồ tròn (Pie Chart)
- Chọn dữ liệu: Bôi đen cột “Danh mục” và cột “% Tổng”.
- Chèn biểu đồ: Vào tab Insert → Pie Chart → Chọn kiểu 2‑D Pie hoặc 3‑D Pie.
- Định dạng biểu đồ:
- Tiêu đề: Nhấp đôi vào tiêu đề mặc định, sửa thành “Phân bố phần trăm doanh thu theo sản phẩm”.
- Nhãn dữ liệu: Click chuột phải vào các lát cắt → Add Data Labels → More Data Label Options → Tick “Percentage” và “Category Name”.
- Màu sắc: Sử dụng Chart Tools → Format → Shape Fill để thay đổi màu sắc sao cho tương phản và dễ phân biệt.
- Tối ưu hoá: Nếu có quá nhiều lát cắt (hơn 7‑8), cân nhắc gộp các phần nhỏ thành “Khác” để tránh biểu đồ rối mắt.
3.2. Vẽ biểu đồ cột phần trăm (Stacked Percentage Bar Chart)
- Chuẩn bị dữ liệu: Đặt các danh mục làm cột, các nhóm làm hàng. Ví dụ:
| Sản phẩm 1 | Sản phẩm 2 | Sản phẩm 3 | |
|---|---|---|---|
| Khu vực A | 120 | 80 | 0 |
| Khu vực B | 150 | 50 | 100 |
- Chọn toàn bộ bảng → Insert → Bar Chart → Stacked Bar.
- Chuyển đổi thành phần trăm: Click chuột phải vào một cột → Format Data Series → Trong mục Series Options, chọn Percentage (đối với Excel 2026 trở lên sẽ có tùy chọn “100% Stacked Bar”).
- Thêm nhãn phần trăm: Click chuột phải vào các phần → Add Data Labels → Chọn “Percentage”.
- Tinh chỉnh:
- Đặt trục Y (hoặc X) hiển thị tên nhóm.
- Thêm legend để giải thích màu sắc.
- Đặt màu sắc nhất quán cho cùng một danh mục trên các nhóm.
3.3. Vẽ biểu đồ đường phần trăm (Percentage Line Chart)
- Dữ liệu thời gian: Đảm bảo cột thời gian (ngày, tháng, năm) ở cột đầu tiên, các cột tiếp theo là giá trị phần trăm.
- Chọn dữ liệu → Insert → Line Chart → Line with Markers.
- Định dạng trục Y: Click trục Y → Format Axis → Đặt Maximum = 1 (hoặc 100%) và Minimum = 0.
- Thêm nhãn dữ liệu: Nếu muốn hiển thị giá trị phần trăm trên mỗi điểm, bật Data Labels và chọn “Value From Cells” → Chọn cột phần trăm.
3.4. Mẹo thiết kế trong Excel
- Tránh dùng quá nhiều màu: Giới hạn trong 4‑6 màu chính để người xem không bị rối.
- Sử dụng màu sắc có độ tương phản cao cho các phần quan trọng (ví dụ: màu đỏ cho giảm, xanh cho tăng).
- Đảm bảo độ đọc được: Kích thước font chữ trên nhãn ít nhất 10pt, đường viền mỏng.
- Kiểm tra tính chính xác: Đối chiếu tổng phần trăm mỗi cột/nhóm có đúng 100% không.
4. Vẽ biểu đồ phần trăm bằng Google Sheets
Google Sheets cung cấp giao diện trực quan, dễ chia sẻ và tương thích với các thiết bị di động.
4.1. Biểu đồ tròn

Có thể bạn quan tâm: Cách Vẽ Biểu Đồ Momen Xoắn: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
- Chọn dữ liệu → Insert → Chart.
- Trong bảng Chart editor, chọn Chart type → Pie chart.
- Để hiển thị phần trăm, vào Customize → Pie slice → Bật Slice label → Chọn “Percentage”.
4.2. Biểu đồ cột phần trăm
- Chuẩn bị dữ liệu dạng “wide” (như trong Excel).
- Insert → Chart → Chart type → Stacked column chart.
- Trong Customize → Series → Bật Data labels và chọn “Percentage”.
- Đặt Stacking = “100%” trong mục Setup.
4.3. Biểu đồ đường phần trăm
- Đảm bảo trục Y được định dạng dưới dạng “Percent”.
- Chọn Chart type → Line chart.
- Tùy chỉnh trục Y trong Customize → Vertical axis → Đặt Number format = “Percent”.
4.4. Tính năng chia sẻ và cộng tác
- Link chia sẻ: Nhấn “Share” → Đặt quyền “Viewer” cho người nhận.
- Cập nhật tự động: Khi dữ liệu nguồn thay đổi, biểu đồ tự động cập nhật, rất hữu ích cho báo cáo định kỳ.
5. Vẽ biểu đồ phần trăm bằng Python
Python là công cụ mạnh mẽ cho việc tự động hoá, xử lý dữ liệu lớn và tạo biểu đồ tùy chỉnh. Hai thư viện phổ biến nhất là matplotlib và seaborn. Dưới đây là hướng dẫn chi tiết.
5.1. Cài đặt môi trường
pip install pandas matplotlib seaborn
5.2. Chuẩn bị dữ liệu
import pandas as pd # Dữ liệu mẫu
data = { 'Region': 'A', 'A', 'B', 'B', 'B', 'Product': 'P1', 'P2', 'P1', 'P2', 'P3', 'Value': 120, 80, 150, 50, 100
}
df = pd.DataFrame(data) # Tính tổng theo khu vực
total_by_region = df.groupby('Region')'Value'.transform('sum')
df'Percent' = df'Value' / total_by_region
print(df)
Kết quả:
Region Product Value Percent
0 A P1 120 0.600000
1 A P2 80 0.400000
2 B P1 150 0.500000
3 B P2 50 0.166667
4 B P3 100 0.333333
5.3. Biểu đồ tròn

Có thể bạn quan tâm: Cách Vẽ Biểu Đồ Momen Uốn: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
import matplotlib.pyplot as plt # Lọc dữ liệu khu vực A làm ví dụ
df_a = dfdf'Region' == 'A' plt.figure(figsize=(6,6))
plt.pie(df_a'Percent', labels=df_a'Product', autopct='%1.1f%%', startangle=140, colors=plt.cm.Set3.colors)
plt.title('Phân bố phần trăm sản phẩm trong khu vực A')
plt.show()
5.3.1. Tùy chỉnh nâng cao
- Explode: Đẩy một lát cắt ra để nhấn mạnh.
- Shadow: Thêm bóng để biểu đồ trông 3D hơn.
explode = (0.1, 0, 0) # Đẩy P1 ra một chút
plt.pie(df_a'Percent', labels=df_a'Product', autopct='%1.1f%%', explode=explode, shadow=True, startangle=90)
5.4. Biểu đồ cột phần trăm (Stacked 100%)
import seaborn as sns # Pivot dữ liệu để có dạng wide
pivot = df.pivot(index='Region', columns='Product', values='Percent').fillna(0) pivot.plot(kind='bar', stacked=True, colormap='Pastel1', figsize=(8,5))
plt.ylabel('Phần trăm')
plt.title('Biểu đồ cột phần trăm theo khu vực')
plt.legend(title='Sản phẩm', bbox_to_anchor=(1.05, 1), loc='upper left')
plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.0%}'.format(y)))
plt.show()
5.4.1. Lưu biểu đồ
plt.savefig('stacked_percentage_bar.png', dpi=300, bbox_inches='tight')
5.5. Biểu đồ đường phần trăm (Trend)
Giả sử chúng ta có dữ liệu theo tháng:
# Dữ liệu thời gian mẫu
time_data = { 'Month': pd.date_range('2026-01-01', periods=6, freq='M'), 'Product A': 0.2, 0.25, 0.22, 0.3, 0.28, 0.35, 'Product B': 0.8, 0.75, 0.78, 0.7, 0.72, 0.65
}
df_time = pd.DataFrame(time_data).set_index('Month')
df_time.plot(figsize=(10,6), marker='o')
plt.ylabel('Phần trăm')
plt.title('Xu hướng phần trăm doanh thu theo tháng')
plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.0%}'.format(y)))
plt.show()
5.6. Các lưu ý khi dùng Python
| Vấn đề | Giải pháp |
|---|---|
| Độ phân giải thấp khi hiển thị trên notebook | Dùng plt.figure(dpi=150) hoặc %matplotlib inline kèm plt.rcParams'figure.dpi' = 150. |
| Màu sắc không đủ tương phản | Sử dụng colormap từ seaborn như color_palette('colorblind'). |
| Nhãn trùng lặp trong biểu đồ cột | Gộp các giá trị nhỏ thành “Khác” trước khi vẽ. |
| Định dạng phần trăm không hiển thị đúng | Thiết lập plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: f'{y:.0%}')). |
6. Nguyên tắc thiết kế biểu đồ phần trăm hiệu quả
6.1. Lựa chọn loại biểu đồ phù hợp
| Mục tiêu | Loại biểu đồ đề xuất |
|---|---|
| So sánh tỷ lệ của ít (≤5) danh mục | Biểu đồ tròn |
| So sánh tỷ lệ của nhiều danh mục, có nhóm | Stacked 100% Bar/Column |
| Theo dõi xu hướng phần trăm theo thời gian | Line/Area chart |
| Trình bày tổng thể phần trăm của các phần trong một hệ thống phức tạp | Sunburst chart (trong Power BI hoặc Plotly) |
6.2. Màu sắc và độ tương phản
- Màu sắc nhất quán: Mỗi danh mục nên có cùng màu trong toàn bộ báo cáo.
- Màu sắc dễ phân biệt: Tránh sử dụng các màu gần giống nhau (ví dụ: xanh nhạt vs xanh lục nhạt).
- Màu sắc cho người mù màu: Sử dụng bộ màu “colorblind-friendly” như
#0072B2,#D55E00,#CC79A7,#009E73.
6.3. Nhãn và chú giải

Có thể bạn quan tâm: Cách Vẽ Biểu Đồ Lực Dọc: Hướng Dẫn Chi Tiết Từ A Đến Z
- Hiển thị phần trăm trên mỗi phần: Đặc biệt quan trọng với biểu đồ tròn và cột phần trăm.
- Đặt chú giải (legend) gần biểu đồ: Tránh để legend ở vị trí xa, gây mất tập trung.
- Sử dụng font dễ đọc: Sans-serif (Arial, Helvetica) với kích thước ≥10pt.
6.4. Tránh các lỗi thường gặp
| Lỗi | Hậu quả | Cách khắc phục |
|---|---|---|
| Quá nhiều lát cắt trong pie chart | Rối mắt, khó đọc | Gộp các phần nhỏ thành “Khác”. |
| Không chuẩn hoá tổng 100% trong stacked bar | Các cột không đồng nhất, gây hiểu lầm | Đảm bảo dùng “100% Stacked” hoặc tính lại phần trăm. |
| Sử dụng màu gradient trong pie chart | Gây khó phân biệt các phần | Dùng màu rời rạc, không gradient. |
| Nhầm lẫn giữa “percentage of total” và “percentage of group” | Trình bày sai lệch | Rõ ràng định nghĩa trong tiêu đề và chú thích. |
7. Ứng dụng thực tiễn của biểu đồ phần trăm
7.1. Kinh doanh và Marketing
- Phân tích thị phần (market share): Biểu đồ tròn thể hiện tỷ lệ thị phần của các đối thủ.
- Chi phí quảng cáo: Stacked bar cho phép so sánh phần trăm ngân sách chi cho các kênh (TV, Online, Print) qua các tháng.
- Tỷ lệ chuyển đổi: Line chart hiển thị phần trăm chuyển đổi từ lượt truy cập thành khách hàng trong thời gian.
7.2. Quản lý nhân sự
- Tỷ lệ nghỉ việc: Biểu đồ cột phần trăm so sánh tỷ lệ nghỉ việc theo phòng ban.
- Đa dạng giới tính: Pie chart cho phép nhìn nhanh tỷ lệ nam/nữ trong công ty.
7.3. Y tế và công cộng
- Tỷ lệ tiêm chủng: Line chart theo thời gian, hoặc stacked bar thể hiện phần trăm tiêm chủng theo độ tuổi.
- Phân bố bệnh: Pie chart cho các loại bệnh phổ biến trong một khu vực.
7.4. Giáo dục
- Kết quả học tập: Stacked bar hiển thị phần trăm học sinh đạt các mức điểm (A, B, C, D) theo lớp.
- Tham gia hoạt động ngoại khóa: Pie chart cho tỷ lệ tham gia so với không tham gia.
8. Tự động hoá quy trình tạo biểu đồ phần trăm

8.1. Sử dụng macro trong Excel
Bạn có thể ghi lại một macro để tự động:
- Lấy dữ liệu từ một bảng động.
- Tính toán phần trăm.
- Tạo biểu đồ và định dạng.
Sub CreatePercentageChart() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Data") ' Tính tổng cho mỗi nhóm Dim lastRow As Long lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ws.Range("D2:D" & lastRow).FormulaR1C1 = "=RC-1/SUMIF(R2C1:R" & lastRow & "C1,RC-3,RC-1)" ws.Range("D2:D" & lastRow).NumberFormat = "0.0%" ' Chèn biểu đồ Dim cht As ChartObject Set cht = ws.ChartObjects.Add(Left:=300, Width:=400, Top:=10, Height:=300) cht.Chart.SetSourceData Source:=ws.Range("B1:D" & lastRow) cht.Chart.ChartType = xlPie cht.Chart.HasTitle = True cht.Chart.ChartTitle.Text = "Phân bố phần trăm" ' Định dạng nhãn cht.Chart.ApplyDataLabels Type:=xlDataLabelsShowPercent, _ LegendKey:=False, AutoText:=True, HasLeaderLines:=True
End Sub
8.2. Sử dụng Jupyter Notebook cho Python
Trong môi trường Jupyter, bạn có thể tạo một hàm tổng quát:
def plot_percentage_chart(df, group_col, category_col, value_col, chart_type='pie'): import matplotlib.pyplot as plt import seaborn as sns # Tính phần trăm df'_pct' = dfvalue_col / df.groupby(group_col)value_col.transform('sum') if chart_type == 'pie': for grp, sub in df.groupby(group_col): plt.figure(figsize=(6,6)) plt.pie(sub'_pct', labels=subcategory_col, autopct='%1.1f%%') plt.title(f'Phần trăm {group_col} = {grp}') plt.show() elif chart_type == 'stacked_bar': pivot = df.pivot(index=group_col, columns=category_col, values='_pct').fillna(0) pivot.plot(kind='bar', stacked=True, colormap='tab20') plt.ylabel('Phần trăm') plt.title('Biểu đồ cột phần trăm') plt.show() else: raise ValueError("Chỉ hỗ trợ 'pie' và 'stacked_bar'")
Bạn chỉ cần gọi:
plot_percentage_chart(df, 'Region', 'Product', 'Value', chart_type='stacked_bar')
9. Kiểm tra và xác nhận độ chính xác của biểu đồ
- Kiểm tra tổng: Đối với mỗi nhóm, tổng phần trăm phải bằng 100% (hoặc rất gần do làm tròn).
- Kiểm tra dữ liệu gốc: Đảm bảo không có giá trị âm hoặc lỗi nhập liệu.
- Kiểm tra màu sắc và nhãn: Đọc lại để chắc chắn rằng màu và nhãn khớp với dữ liệu.
Bạn có thể viết một hàm kiểm tra tự động trong Python:
def verify_percentages(df, group_col, pct_col='Percent', tolerance=0.001): diff = df.groupby(group_col)pct_col.sum() - 1 if (diff.abs() > tolerance).any(): print("Cảnh báo: Một hoặc nhiều nhóm không tổng bằng 100%") print(diff) else: print("Tất cả các nhóm đã tổng bằng 100%")
10. Kết luận
Việc vẽ biểu đồ phần trăm không chỉ là một kỹ năng cơ bản trong phân tích dữ liệu mà còn là nghệ thuật truyền tải thông tin một cách rõ ràng và thuyết phục. Từ các công cụ phổ biến như Microsoft Excel và Google Sheets cho tới Python mạnh mẽ, mỗi nền tảng đều có ưu điểm riêng:
- Excel/Sheets: Thân thiện, không cần lập trình, phù hợp cho người dùng văn phòng.
- Python: Linh hoạt, tự động hoá, dễ tích hợp vào pipeline dữ liệu lớn.
- Nguyên tắc thiết kế: Lựa chọn loại biểu đồ phù hợp, sử dụng màu sắc hợp lý, và luôn kiểm tra độ chính xác.
Hy vọng qua bài viết này, bạn đã nắm vững quy trình từ chuẩn bị dữ liệu, lựa chọn loại biểu đồ, thực hiện vẽ và tối ưu hoá thiết kế. Khi áp dụng những kiến thức này vào công việc thực tế, báo cáo của bạn sẽ trở nên sinh động, dễ hiểu và có sức thuyết phục cao hơn.
Hãy bắt đầu thực hành ngay hôm nay: thu thập dữ liệu, áp dụng các bước trên và tạo ra những biểu đồ phần trăm chất lượng, hỗ trợ quyết định kinh doanh và truyền đạt thông tin một cách hiệu quả!
