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

  1. 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.
  2. 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.
  3. Ví dụ: Size_norm = (Size - min(Size)) / (max(Size) - min(Size)) (max_radius - min_radius) + min_radius
  4. 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.
  5. Đị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ạng string hoặc categorical.

3. Vẽ Bubble Chart bằng Microsoft Excel

Cách Vẽ Bubble Chart
Cách Vẽ Bubble Chart

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

  1. Mở Excel, nhập dữ liệu vào sheet, ví dụ:
  2. A1: Doanh thu
  3. B1: Lợi nhuận
  4. C1: Số lượng bán ra
  5. D1: Phân khúc
  6. Đả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 đồ

  1. Chọn toàn bộ dải dữ liệu (A1:D5 trong ví dụ).
  2. Vào Insert → Scatter (X, Y) Chart → Scatter with only Markers.
  3. 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

  1. Click chuột phải vào biểu đồ → Change Chart Type.
  2. Chọn Bubble trong mục Scatter.
  3. Nhấn OK. Excel sẽ tự động gán cột Số lượng bán ra làm kích thước bong bóng.

3.4. Bước 4: Tùy chỉnh màu sắc

  1. Click vào một bong bóng → Format Data Series.
  2. Mở Fill & Line → Fill → Solid fill.
  3. Để 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:
  4. Tách dữ liệu theo phân khúc (sao chép vào các cột phụ).
  5. 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.
  6. Đặ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ách Vẽ Bubble Chart
Cách Vẽ Bubble Chart
  • 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 đồ

  1. Chọn dải dữ liệu → Insert → Chart.
  2. Trong Chart editor, chọn Chart type → Scatter chart.
  3. 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ách Vẽ Bubble Chart
Cách Vẽ Bubble Chart

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ách Vẽ Bubble Chart
Cách Vẽ Bubble Chart
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

  1. 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.
  2. 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/π).
  3. Độ 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.
  4. 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.
  5. 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 viridis hoặc cividis.
  6. 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ỡ.
  7. 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.
  8. 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ư

Cách Vẽ Bubble Chart
Cách Vẽ Bubble Chart
  • 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!

Rate this post
Mục nhập này đã được đăng trong Blog. Đánh dấu trang permalink.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *