TÓM TẮT
- 1 1. Giới thiệu chung về Bubble Chart
- 2 2. Chuẩn bị dữ liệu cho Bubble Chart
- 3 3. Vẽ Bubble Chart bằng Microsoft Excel
- 4 4. Vẽ Bubble Chart bằng Google Sheets
- 5 5. Vẽ Bubble Chart bằng Python
- 6 6. Vẽ Bubble Chart bằng R (ggplot2)
- 7 7. Các lưu ý quan trọng khi thiết kế Bubble Chart
- 8 8. Các ứng dụng thực tiễn của Bubble Chart
- 9 9. So sánh Bubble Chart với các loại biểu đồ khác
- 10 10. Kết luận
1. Giới thiệu chung về Bubble Chart
Bubble chart (biểu đồ bong bóng) là một loại biểu đồ hỗn hợp, kết hợp các yếu tố của scatter plot (biểu đồ điểm) và kích thước biểu tượng (bubble) để biểu diễn ba biến số cùng một lúc. Mỗi “bong bóng” trên biểu đồ không chỉ xác định vị trí theo hai trục X và Y mà còn mang thông tin về một biến thứ ba thông qua kích thước (đường kính) và/hoặc màu sắc. Nhờ vậy, bubble chart trở thành công cụ mạnh mẽ để:
- So sánh đa chiều: nhìn nhanh mối quan hệ giữa ba biến số.
- Phát hiện xu hướng: nhận diện các cụm, ngoại lệ, hoặc mối quan hệ phi tuyến.
- Trực quan hoá dữ liệu phức tạp: truyền tải thông tin một cách sinh động, dễ hiểu cho người không chuyên.
Bubble chart được sử dụng rộng rãi trong các lĩnh vực như kinh doanh (đánh giá thị phần, lợi nhuận, chi phí marketing), tài chính (so sánh vốn hoá, lợi nhuận, rủi ro), y tế (đánh giá hiệu quả thuốc, chi phí, số ca bệnh), giáo dục (đánh giá hiệu suất học sinh, chi phí đào tạo, thời gian học) và nhiều ngành khác.
Bài viết này sẽ hướng dẫn chi tiết cách vẽ bubble chart từ khâu chuẩn bị dữ liệu, chọn công cụ, thiết kế biểu đồ, tùy chỉnh và cách diễn giải kết quả. Chúng ta sẽ đi qua các phương pháp phổ biến: sử dụng Microsoft Excel, Google Sheets, Python (matplotlib, seaborn, plotly) và R (ggplot2). Đồng thời, sẽ cung cấp những lưu ý quan trọng để tránh các lỗi thường gặp và nâng cao tính thẩm mỹ của biểu đồ.
2. Chuẩn bị dữ liệu cho Bubble Chart
2.1. Cấu trúc dữ liệu cơ bản
Để vẽ bubble chart, dữ liệu cần ít nhất ba cột:
| X (trục hoành) | Y (trục tung) | Size (kích thước bong bóng) | Color (tùy chọn) |
|---|---|---|---|
| Giá trị đại diện cho biến 1 | Giá trị đại diện cho biến 2 | Giá trị định lượng để tính diện tích/đường kính | Nhóm hoặc phân loại (có thể là chuỗi hoặc số) |
Ví dụ: Khi phân tích hiệu suất các sản phẩm trong một công ty:
| Sản phẩm | Doanh thu (triệu $) | Lợi nhuận (triệu $) | Số lượng bán ra (đơn vị) | Phân khúc |
|---|---|---|---|---|
| A | 120 | 30 | 5000 | Premium |
| B | 80 | 20 | 3000 | Standard |
| C | 150 | 45 | 7000 | Premium |
| D | 60 | 10 | 2000 | Economy |
- X: Doanh thu
- Y: Lợi nhuận
- Size: Số lượng bán ra (càng lớn, bong bóng càng to)
- Color: Phân khúc (để phân biệt màu sắc)
2.2. Xử lý dữ liệu
- Kiểm tra dữ liệu thiếu: Loại bỏ hoặc thay thế giá trị null (
NA,NaN). Với bubble chart, giá trị thiếu ở bất kỳ cột nào sẽ khiến bong bóng không xuất hiện hoặc gây lỗi. - Chuẩn hoá kích thước: Để tránh bong bóng quá to hoặc quá nhỏ, thường áp dụng hàm log hoặc chuẩn hoá (min‑max scaling) cho cột Size.
- Ví dụ:
Size_norm = (Size - min(Size)) / (max(Size) - min(Size)) (max_radius - min_radius) + min_radius - Kiểm tra outlier: Các giá trị ngoại lệ có thể làm mất cân đối biểu đồ, cần xem xét loại bỏ hoặc hiển thị riêng.
- Định dạng kiểu dữ liệu: Đảm bảo cột X, Y, Size là số (
float/int). Cột Color có thể là dạngstringhoặccategorical.
3. Vẽ Bubble Chart bằng Microsoft Excel

Có thể bạn quan tâm: Cách Vẽ Bùa Tiec Đúng Chuẩn: Hướng Dẫn Từng Bước Cho Người Mới Bắt Đầu
Excel là công cụ phổ biến, dễ tiếp cận cho người không chuyên. Dưới đây là các bước chi tiết:
3.1. Bước 1: Chuẩn bị bảng dữ liệu
- Mở Excel, nhập dữ liệu vào sheet, ví dụ:
- A1:
Doanh thu - B1:
Lợi nhuận - C1:
Số lượng bán ra - D1:
Phân khúc - Đảm bảo không có hàng trống trong dải dữ liệu.
3.2. Bước 2: Chèn biểu đồ
- Chọn toàn bộ dải dữ liệu (A1:D5 trong ví dụ).
- Vào Insert → Scatter (X, Y) Chart → Scatter with only Markers.
- Biểu đồ scatter cơ bản xuất hiện, các điểm chưa có kích thước và màu sắc tùy chỉnh.
3.3. Bước 3: Chuyển thành Bubble Chart
- Click chuột phải vào biểu đồ → Change Chart Type.
- Chọn Bubble trong mục Scatter.
- Nhấn OK. Excel sẽ tự động gán cột
Số lượng bán ralàm kích thước bong bóng.
3.4. Bước 4: Tùy chỉnh màu sắc
- Click vào một bong bóng → Format Data Series.
- Mở Fill & Line → Fill → Solid fill.
- Để phân biệt màu dựa trên
Phân khúc, cần tạo Series riêng cho mỗi phân khúc: - Tách dữ liệu theo phân khúc (sao chép vào các cột phụ).
- Thêm từng series vào biểu đồ bằng cách Select Data → Add → chọn X, Y, Size cho từng nhóm.
- Đặt màu khác nhau cho mỗi series.
3.5. Bước 5: Thêm nhãn và định dạng trục
- Nhãn dữ liệu: Click series → Add Data Labels → Label Options → chọn Value From Cells → chọn cột
Sản phẩmđể hiển thị tên. - Tiêu đề trục: Click trục → Axis Options → nhập tiêu đề (ví dụ: “Doanh thu (triệu $)” và “Lợi nhuận (triệu $)”).
- Định dạng trục: Đặt Minimum, Maximum, Major unit để đồng nhất với các biểu đồ khác nếu cần.
3.6. Bước 6: Tinh chỉnh thẩm mỹ
- Độ trong suốt (Transparency): Giảm để bong bóng chồng lên nhau vẫn nhìn được.
- Đường viền (Border): Thêm viền màu trắng hoặc đen để làm nổi bật.
- Legend: Đặt Legend ở vị trí hợp lý (trên, dưới, bên phải) để giải thích màu sắc.
3.7. Bước 7: Lưu và xuất

Có thể bạn quan tâm: Cách Vẽ Bts Anime Đầy Đủ Từ Cơ Bản Đến Nâng Cao: Hướng Dẫn Chi Tiết Cho Người Mới Bắt Đầu
- Lưu file:
.xlsx. - Xuất ảnh: Click biểu đồ → Copy → dán vào PowerPoint/Word hoặc Save as Picture để lưu dưới dạng PNG/JPEG.
4. Vẽ Bubble Chart bằng Google Sheets
Google Sheets cung cấp tính năng tương tự Excel, nhưng có một số hạn chế về tùy chỉnh màu sắc dựa trên nhóm. Dưới đây là quy trình:
4.1. Nhập dữ liệu
- Nhập dữ liệu giống như trong Excel, đảm bảo các cột X, Y, Size, Color (nếu có).
4.2. Tạo biểu đồ
- Chọn dải dữ liệu → Insert → Chart.
- Trong Chart editor, chọn Chart type → Scatter chart.
- Bật Bubble size trong Customize → Series → Bubble size → chọn cột
Size.
4.3. Tùy chỉnh màu
Google Sheets không hỗ trợ tự động phân màu theo một cột. Cách giải quyết:
- Phương pháp 1: Tạo nhiều series như trong Excel (cắt dữ liệu thành từng nhóm, tạo series riêng).
- Phương pháp 2: Sử dụng Conditional formatting cho cột màu và sau đó áp dụng Data range cho mỗi series.
4.4. Thêm nhãn
- Trong Customize → Series, bật Data labels và chọn Use custom cell values → chọn cột
Sản phẩm.
4.5. Định dạng cuối
- Thay đổi Chart & axis titles, Legend, Gridlines, Background color để cải thiện thẩm mỹ.
- Lưu biểu đồ dưới dạng PNG bằng cách click biểu đồ → Download.
5. Vẽ Bubble Chart bằng Python

Có thể bạn quan tâm: Cách Vẽ Bts 21: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Python cung cấp các thư viện mạnh mẽ cho visualisation: matplotlib, seaborn, plotly. Dưới đây là các ví dụ chi tiết.
5.1. Chuẩn bị môi trường
pip install pandas matplotlib seaborn plotly
5.2. Dữ liệu mẫu
import pandas as pd data = { 'Product': 'A', 'B', 'C', 'D', 'Revenue': 120, 80, 150, 60, 'Profit': 30, 20, 45, 10, 'Units': 5000, 3000, 7000, 2000, 'Segment': 'Premium', 'Standard', 'Premium', 'Economy'
}
df = pd.DataFrame(data)
5.3. Matplotlib – Bubble chart cơ bản
import matplotlib.pyplot as plt plt.figure(figsize=(10,6))
scatter = plt.scatter( x=df'Revenue', y=df'Profit', s=df'Units'/10, # chia cho 10 để giảm kích thước c=pd.Categorical(df'Segment').codes, # mã màu cho segment cmap='viridis', alpha=0.6, edgecolors='w', linewidth=0.5
) # Thêm nhãn cho mỗi điểm
for i, txt in enumerate(df'Product'): plt.text(df'Revenue'i+1, df'Profit'i+0.5, txt, fontsize=9) plt.title('Bubble Chart: Revenue vs Profit by Product')
plt.xlabel('Revenue (million $)')
plt.ylabel('Profit (million $)') # Tạo legend cho segment
handles, _ = scatter.legend_elements(prop="colors")
labels = df'Segment'.unique()
plt.legend(handles, labels, title="Segment", loc="upper left") plt.grid(True, linestyle='--', alpha=0.5)
plt.show()
Giải thích các tham số:
s: kích thước bong bóng (đơn vị là điểm vuông). Thường chia cho một hệ số để tránh quá lớn.c: màu sắc dựa trên mã số của segment.cmap: bản đồ màu (viridis, plasma, Set1, …).alpha: độ trong suốt.edgecolors='w': viền trắng giúp bong bóng tách biệt.
5.4. Seaborn – Bubble chart với scatterplot
Seaborn cung cấp giao diện cao cấp hơn, hỗ trợ tự động legend.
import seaborn as sns plt.figure(figsize=(10,6))
sns.scatterplot( data=df, x='Revenue', y='Profit', size='Units', hue='Segment', sizes=(100, 2000), # min, max size alpha=0.7, palette='Set2', legend='full'
) for i, row in df.iterrows(): plt.text(row'Revenue'+1, row'Profit'+0.5, row'Product', fontsize=9) plt.title('Seaborn Bubble Chart')
plt.xlabel('Revenue (M$)')
plt.ylabel('Profit (M$)')
plt.grid(True, linestyle='--', alpha=0.4)
plt.show()
5.5. Plotly – Interactive Bubble Chart
Plotly cho phép tạo biểu đồ tương tác (hover, zoom) rất thích hợp cho báo cáo web.
import plotly.express as px fig = px.scatter( df, x='Revenue', y='Profit', size='Units', color='Segment', hover_name='Product', size_max=60, title='Interactive Bubble Chart: Revenue vs Profit', labels={'Revenue':'Revenue (M$)', 'Profit':'Profit (M$)'}
) fig.update_layout( legend_title_text='Segment', xaxis=dict(showgrid=True), yaxis=dict(showgrid=True)
) fig.show()
Lợi ích của Plotly:
- Hover hiển thị toàn bộ thông tin (Product, Revenue, Profit, Units, Segment).
- Zoom, pan dễ dàng.
- Dễ nhúng vào Dash, Streamlit hoặc Jupyter Notebook.
6. Vẽ Bubble Chart bằng R (ggplot2)
R vẫn là ngôn ngữ thống kê mạnh mẽ, ggplot2 cung cấp cú pháp “đồ họa ngữ pháp” (Grammar of Graphics) rất linh hoạt.
6.1. Cài đặt gói

Có thể bạn quan tâm: Cách Vẽ Bt21 Van Đầy Đủ Từng Bước: Hướng Dẫn Chi Tiết Cho Người Mới Bắt Đầu
install.packages(c("ggplot2", "dplyr"))
library(ggplot2)
library(dplyr)
6.2. Dữ liệu mẫu
df <- data.frame( Product = c('A','B','C','D'), Revenue = c(120,80,150,60), Profit = c(30,20,45,10), Units = c(5000,3000,7000,2000), Segment = c('Premium','Standard','Premium','Economy')
)
6.3. Bubble chart cơ bản
ggplot(df, aes(x=Revenue, y=Profit, size=Units, colour=Segment, label=Product)) + geom_point(alpha=0.6) + geom_text(vjust=1.5, hjust=0.5, size=3) + scale_size(range = c(2, 12)) + # điều chỉnh kích thước min‑max scale_colour_brewer(palette = "Set2") + labs( title = "Bubble Chart: Revenue vs Profit", x = "Revenue (M$)", y = "Profit (M$)", size = "Units Sold", colour = "Segment" ) + theme_minimal() + theme( legend.position = "right", plot.title = element_text(hjust = 0.5, face = "bold") )
6.4. Tùy chỉnh nâng cao
- Log scale cho trục:
scale_x_log10(),scale_y_log10(). - Facet để hiển thị từng segment riêng:
+ facet_wrap(~Segment). - Annotation:
annotate("text", x=..., y=..., label="Outlier").
7. Các lưu ý quan trọng khi thiết kế Bubble Chart
- Không dùng quá nhiều biến: Bubble chart tốt nhất khi chỉ có 2‑3 biến chính. Thêm quá nhiều biến (màu sắc, hình dạng) sẽ gây rối mắt.
- Kích thước bong bóng phản ánh diện tích, không bán kính: Khi tính toán, dùng diện tích để truyền đạt giá trị thực. Nhiều công cụ (Excel, Plotly) tự động chuyển đổi, nhưng khi tự tính toán, dùng công thức
radius = sqrt(value/π). - Độ trong suốt (alpha): Giúp hiển thị các bong bóng chồng lên nhau, tránh che khuất thông tin.
- Trục tỷ lệ: Chọn thang đo phù hợp (linear, log). Đối với dữ liệu có phạm vi rộng, log scale giúp làm mịn các điểm.
- Màu sắc: Sử dụng palette màu phân biệt rõ ràng, tránh màu quá sáng hoặc quá tối. Đối với người màu mù đỏ‑xanh, nên dùng palette
viridishoặccividis. - Nhận diện ngoại lệ: Đánh dấu các điểm outlier bằng màu hoặc nhãn đặc biệt để người xem không bỏ lỡ.
- Giải thích legend: Đảm bảo legend mô tả đầy đủ các yếu tố: màu, kích thước, biểu tượng.
- Kiểm tra trên các thiết bị: Bubble chart tương tác (Plotly, PowerBI) cần kiểm tra hiển thị trên điện thoại, máy tính bảng.
8. Các ứng dụng thực tiễn của Bubble Chart
8.1. Phân tích thị trường
- X‑axis: Thị phần (%)
- Y‑axis: Tốc độ tăng trưởng (%)
- Size: Doanh thu (tỷ USD)
- Color: Phân khúc sản phẩm
Giúp nhà quản lý nhanh chóng nhận ra những sản phẩm “ngôi sao” (có thị phần lớn, tăng trưởng nhanh, doanh thu cao) và “đối thủ tiềm năng”.
8.2. Đánh giá dự án đầu tư

- X: Tỷ lệ lợi nhuận nội bộ (IRR)
- Y: Thời gian hoàn vốn (years)
- Size: Tổng vốn đầu tư
- Color: Ngành (công nghệ, bất động sản, năng lượng)
Cho phép quyết định ưu tiên dự án có IRR cao, thời gian hoàn vốn ngắn, và vốn đầu tư phù hợp.
8.3. Phân tích sức khỏe cộng đồng
- X: Tỷ lệ tiêm chủng (%)
- Y: Tỷ lệ tử vong do bệnh (%)
- Size: Dân số
- Color: Vùng địa lý (các tỉnh)
Giúp các nhà hoạch định chính sách tập trung nguồn lực vào khu vực có tiêm chủng thấp và tử vong cao.
9. So sánh Bubble Chart với các loại biểu đồ khác
| Tiêu chí | Bubble Chart | Scatter Plot | Bar Chart | Heatmap |
|---|---|---|---|---|
| Số biến hiển thị | 3‑4 (X, Y, Size, Color) | 2 (X, Y) | 1‑2 (Category, Value) | 2 (X, Y) + màu |
| Khả năng so sánh | Tốt cho đa chiều, phát hiện cụm | Giới hạn, không thể biểu thị kích thước | Giới hạn, chỉ so sánh giá trị | Thích hợp cho ma trận, không hiển thị ngoại lệ |
| Độ phức tạp | Trung bình‑cao | Thấp | Thấp | Trung bình |
| Tương tác | Tốt (Plotly, PowerBI) | Tốt | Trung bình | Tốt (hover) |
| Thích hợp | Phân tích thị phần, rủi ro tài chính | Mối quan hệ tuyến tính | So sánh danh mục | Phân bố mật độ, nhiệt độ |
10. Kết luận
Bubble chart là một công cụ trực quan mạnh mẽ, giúp người dùng truyền tải đồng thời ba (hoặc hơn) biến số trong một biểu đồ duy nhất. Bài viết đã cung cấp:
- Kiến thức nền tảng về cấu trúc và ý nghĩa của bubble chart.
- Quy trình chuẩn bị dữ liệu: làm sạch, chuẩn hoá, xử lý outlier.
- Hướng dẫn chi tiết vẽ bubble chart trên Excel, Google Sheets, Python (matplotlib, seaborn, plotly) và R (ggplot2).
- Các lưu ý thiết kế để biểu đồ rõ ràng, thẩm mỹ và dễ hiểu.
- Ví dụ ứng dụng thực tiễn trong kinh doanh, tài chính, y tế và quản lý dự án.
- So sánh với các loại biểu đồ khác để người đọc có thể lựa chọn công cụ phù hợp.
Với những kiến thức này, bạn có thể tự tin tạo ra những bubble chart chuyên nghiệp, hỗ trợ quyết định chiến lược và truyền tải dữ liệu một cách sinh động. Hãy thực hành với dữ liệu thực tế của mình, điều chỉnh các tham số (kích thước, màu sắc, trục log) và luôn nhớ kiểm tra tính hợp lý của dữ liệu trước khi công bố. Chúc bạn thành công trong việc khám phá và trình bày dữ liệu đa chiều!
