TÓM TẮT
- 1 Mở Đầu
- 2 1. Biểu Đồ Hoa Gió Là Gì?
- 3 2. Khi Nào Nên Sử Dụng Biểu Đồ Hoa Gió?
- 4 3. Chuẩn Bị Dữ Liệu
- 5 4. Lựa Chọn Công Cụ Vẽ Biểu Đồ Hoa Gió
- 6 5. Hướng Dẫn Thực Hành Với Excel
- 7 6. Hướng Dẫn Thực Hành Với Python (Plotly)
- 8 7. Thiết Kế Thẩm Mỹ Và Đọc Hiểu
- 9 8. Ứng Dụng Thực Tế
- 10 9. Tự Động Hóa Và Tái Sử Dụng
- 11 10. Kiểm Tra và Đánh Giá Chất Lượng Biểu Đồ
- 12 11. Tổng Kết
Mở Đầu
Trong thời đại dữ liệu ngày càng phong phú, việc biểu diễn thông tin một cách trực quan, sinh động và dễ hiểu trở thành nhu cầu thiết yếu của mọi doanh nghiệp, nhà nghiên cứu và cả những người làm nội dung. Trong số các loại biểu đồ, biểu đồ hoa gió (Wind Rose Chart) nổi bật với khả năng hiển thị đa chiều, giúp người xem nắm bắt nhanh chóng các xu hướng, phân bố và mức độ quan trọng của các yếu tố liên quan. Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ khái niệm cơ bản, chuẩn bị dữ liệu, lựa chọn công cụ, đến các bước thực hiện cụ thể và mẹo tối ưu hoá biểu đồ hoa gió. Hy vọng qua đó, bạn sẽ tự tin tạo ra những biểu đồ ấn tượng, truyền tải thông tin một cách hiệu quả.
1. Biểu Đồ Hoa Gió Là Gì?
1.1 Định Nghĩa
Biểu đồ hoa gió (tiếng Anh: Wind Rose) là một dạng biểu đồ dạng tròn, thường được sử dụng để thể hiện sự phân bố của một hoặc nhiều biến số theo các hướng (đôi khi còn là các “cung” hoặc “độ dài” biểu thị tần suất hoặc giá trị trung bình). Ban đầu, biểu đồ này được phát triển để mô tả hướng gió và tốc độ gió tại các trạm quan trắc thời tiết, nhưng hiện nay đã mở rộng sang nhiều lĩnh vực như:
- Phân tích hành vi khách hàng (theo thời gian, địa lý, kênh tiếp cận)
- Đánh giá rủi ro và mức độ ảnh hưởng trong quản lý dự án
- Trình bày kết quả khảo sát (độ hài lòng, mức độ ưu tiên)
- So sánh hiệu suất các trung tâm sản xuất, cửa hàng, chi nhánh
1.2 Thành Phần Cơ Bản
Một biểu đồ hoa gió thường bao gồm:
| Thành phần | Mô tả | Vai trò |
|---|---|---|
| Trục hướng | Các “cung” chia thành 8, 12, 16 hoặc 24 hướng (N, NE, E, …) | Xác định góc, phân loại dữ liệu |
| Độ dài mỗi cung | Thể hiện tần suất, tỷ lệ phần trăm hoặc giá trị trung bình | So sánh mức độ quan trọng |
| Màu sắc | Mỗi màu đại diện cho một mức độ (ví dụ: tốc độ gió, mức độ rủi ro) | Tăng tính trực quan, phân biệt dữ liệu |
| Nhãn | Ghi chú giá trị, tỷ lệ, tiêu đề | Giúp người đọc hiểu nhanh thông tin |
| Vòng tròn trung tâm | Thường để trống hoặc chứa tiêu đề, tổng hợp | Tạo điểm nhấn, cân bằng bố cục |
2. Khi Nào Nên Sử Dụng Biểu Đồ Hoa Gió?
2.1 Đặc Điểm Phù Hợp

Có thể bạn quan tâm: Cách Vẽ Biểu Đồ Gantt Chart – Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
| Tình huống | Lý do chọn biểu đồ hoa gió |
|---|---|
| Phân tích hướng gió, thời tiết | Dễ dàng hiển thị tần suất gió theo các hướng |
| So sánh tần suất các loại sự kiện theo hướng (ví dụ: sự cố máy móc, phản hồi khách hàng) | Cho phép so sánh đa chiều trong một hình ảnh |
| Trình bày dữ liệu có tính chu kỳ, vòng quanh (ví dụ: lưu lượng truy cập theo thời gian trong ngày) | Dễ hiểu và sinh động |
| Khi cần thể hiện nhiều lớp dữ liệu (cùng một hướng nhưng có các mức độ khác nhau) | Màu sắc và độ dài cung hỗ trợ hiển thị đa lớp |
2.2 Những Trường Hợp Không Thích Hợp
- Khi dữ liệu không có yếu tố “hướng” (địa lý, thời gian) rõ ràng.
- Khi số lượng danh mục quá ít (dưới 5) – biểu đồ cột hoặc thanh sẽ đơn giản hơn.
- Khi muốn thể hiện mối quan hệ nhân quả hoặc xu hướng thời gian dài – biểu đồ đường hoặc scatter sẽ phù hợp hơn.
3. Chuẩn Bị Dữ Liệu
3.1 Thu Thập Dữ Liệu
Đối với biểu đồ hoa gió, dữ liệu thường có dạng bảng tần suất hoặc bảng giá trị trung bình theo các hướng. Ví dụ:
| Hướng | Số lần xuất hiện | Giá trị trung bình |
|---|---|---|
| N | 120 | 5.2 |
| NE | 85 | 4.8 |
| E | 150 | 6.1 |
| … | … | … |
Bạn cần:
- Xác định hướng: Có thể là các hướng thực (N, NE, …) hoặc các nhóm tùy chỉnh (ví dụ: “Sáng”, “Chiều”, “Tối”).
- Xác định chỉ số đo lường: Tần suất, phần trăm, giá trị trung bình, tổng, v.v.
- Chuẩn hoá dữ liệu: Nếu muốn hiển thị phần trăm, tính tổng và chia cho tổng chung.
3.2 Định Dạng Dữ Liệu
| Cột 1 | Cột 2 | Cột 3 |
|---|---|---|
| Hướng | Tần suất | Mức độ (tùy chọn) |
| N | 120 | 5.2 |
| NE | 85 | 4.8 |
| … | … | … |
- CSV: Định dạng phổ biến, dễ nhập vào Excel, Google Sheets, Python, R.
- Excel: Bảng tính có tiêu đề rõ ràng.
- JSON (cho lập trình):
{ "direction": "N", "frequency": 120, "value": 5.2 }
3.3 Kiểm Tra và Làm Sạch Dữ Liệu
- Loại bỏ giá trị thiếu (NaN) hoặc thay thế bằng 0 nếu hợp lý.
- Kiểm tra tổng: Đảm bảo tổng tần suất bằng 100% (nếu sử dụng phần trăm) hoặc tổng hợp hợp lý.
- Sắp xếp: Đối với hiển thị đẹp, sắp xếp theo thứ tự kim đồng hồ (N → NE → E → …).
4. Lựa Chọn Công Cụ Vẽ Biểu Đồ Hoa Gió
| Công cụ | Độ phức tạp | Ưu điểm | Nhược điểm | Khi nào dùng |
|---|---|---|---|---|
| Excel | Thấp | Giao diện trực quan, không cần lập trình | Hạn chế tùy chỉnh màu sắc/phong cách | Người mới, nhanh gọn |
| Google Sheets | Thấp | Online, chia sẻ dễ dàng | Giới hạn tính năng so với Excel | Khi làm việc nhóm |
| Tableau | Trung bình | Đồ họa mạnh, tương tác | Phải mua bản quyền | Phân tích doanh nghiệp |
| Power BI | Trung bình | Tích hợp Office, chia sẻ web | Học curve hơi dốc | Doanh nghiệp sử dụng Microsoft |
| Python (Matplotlib, Plotly, Seaborn) | Cao | Tùy biến tối đa, tự động hoá | Cần lập trình | Dự án dữ liệu lớn, reproducible |
| R (ggplot2, windrose) | Cao | Thống kê mạnh, tùy biến | Cần kiến thức R | Nghiên cứu học thuật |
| D3.js | Cao | Biểu đồ web tương tác | Cần JavaScript | Trang web, dashboard tùy chỉnh |
4.1 Lựa Chọn Dựa Trên Mục Tiêu

Có thể bạn quan tâm: Cách Vẽ Biểu Đồ Dân Số: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
- Nhanh chóng, không lập trình → Excel hoặc Google Sheets.
- Tương tác, dashboard doanh nghiệp → Tableau, Power BI.
- Tự động hoá, tích hợp vào pipeline → Python hoặc R.
- Web, UI tùy chỉnh → D3.js hoặc Plotly.js.
5. Hướng Dẫn Thực Hành Với Excel
5.1 Bước 1: Chuẩn Bị Dữ Liệu
- Mở Excel, tạo một sheet mới.
- Nhập dữ liệu theo dạng:
Hướng,Tần suất,Mức độ(nếu có). Ví dụ:
| A | B | C |
|---|---|---|
| Hướng | Tần suất | Mức độ |
| N | 120 | 5.2 |
| NE | 85 | 4.8 |
| E | 150 | 6.1 |
| SE | 70 | 4.5 |
| S | 90 | 5.0 |
| SW | 60 | 3.9 |
| W | 130 | 5.7 |
| NW | 95 | 5.1 |
- Đảm bảo không có ô trống trong cột Hướng.
5.2 Bước 2: Chèn Biểu Đồ
- Chọn toàn bộ vùng dữ liệu (A1:C9).
- Vào Insert → Radar Chart → Radar with Markers. (Excel không có “Wind Rose” mặc định, nhưng Radar chart là nền tảng.)
- Khi biểu đồ xuất hiện, chúng ta sẽ tùy chỉnh để giống hoa gió.
5.3 Bước 3: Tùy Chỉnh Giao Diện
- Đổi trục: Click chuột phải vào trục và chọn “Format Axis”. Đặt “Maximum” và “Minimum” sao cho phù hợp (ví dụ, 0‑200 cho tần suất).
- Thêm màu sắc: Click vào từng series (tần suất, mức độ) → Format Data Series → Fill → chọn màu. Có thể dùng gradient để biểu thị mức độ.
- Thêm nhãn: Vào “Chart Elements” → “Data Labels” → “More Options”. Chọn “Category Name” để hiển thị hướng.
- Xoay trục: Để hướng N nằm ở trên, vào Format Axis → “Angle of first slice” = 90 độ.
5.4 Bước 4: Tối Ưu Hóa
- Loại bỏ gridlines: Click chuột phải vào grid → Delete.
- Thêm tiêu đề: Double click vào Title → nhập “Biểu Đồ Hoa Gió – Tần suất và Mức độ”.
- Điều chỉnh kích thước: Kéo để biểu đồ vừa khít trang.
- Lưu mẫu: Click chuột phải → “Save as Template” để dùng lại cho các dữ liệu khác.
5.5 Xuất File
- PDF: File → Save As → PDF.
- Hình ảnh: Click chuột phải → Save as Picture → PNG/JPEG.
6. Hướng Dẫn Thực Hành Với Python (Plotly)
6.1 Cài Đặt Thư Viện

Có thể bạn quan tâm: Cách Vẽ Biểu Đồ Cột Trong Microsoft Word: Hướng Dẫn Chi Tiết Từ A Đến Z
pip install pandas plotly
6.2 Chuẩn Bị Dữ Liệu
import pandas as pd data = { 'direction': 'N','NE','E','SE','S','SW','W','NW', 'frequency': 120,85,150,70,90,60,130,95, 'level': 5.2,4.8,6.1,4.5,5.0,3.9,5.7,5.1
}
df = pd.DataFrame(data)
6.3 Tính Tỷ Lệ Phần Trăm
df'percent' = df'frequency' / df'frequency'.sum() 100
6.4 Vẽ Biểu Đồ
import plotly.graph_objects as go
import numpy as np # Sắp xếp đúng thứ tự kim đồng hồ
order = 'N','NE','E','SE','S','SW','W','NW'
df = df.set_index('direction').locorder.reset_index() fig = go.Figure() # Thêm layer cho tần suất (độ dài cung)
fig.add_trace(go.Barpolar( r=df'percent', theta=0,45,90,135,180,225,270,315, width=45, marker_color='rgba(0,123,255,0.6)', marker_line_color='black', marker_line_width=1, name='Tần suất (%)', hoverinfo='text', text=f"{d}: {p:.1f}%" for d,p in zip(df'direction', df'percent')
)) # Thêm layer cho mức độ (màu sắc)
colors = plt.cm.viridis(df'level'/df'level'.max())
fig.add_trace(go.Barpolar( r=df'percent'0.5, # giảm độ dài để không che layer trên theta=0,45,90,135,180,225,270,315, width=45, marker_color=df'level', marker_colorscale='Viridis', marker_line_color='black', marker_line_width=1, name='Mức độ', hoverinfo='text', text=f"{d}: {l:.1f}" for d,l in zip(df'direction', df'level')
)) fig.update_layout( title='Biểu Đồ Hoa Gió – Tần suất và Mức độ', template='plotly_dark', polar=dict( radialaxis=dict(showticklabels=False, ticks=''), angularaxis=dict(direction='clockwise', rotation=90) ), legend=dict(x=0.85, y=0.9)
) fig.show()
6.5 Giải Thích Mã
- Barpolar: Loại biểu đồ của Plotly dành cho dữ liệu dạng vòng tròn.
- theta: Góc (độ) của mỗi cung, tính bằng 0‑360.
- width: Độ rộng cung (độ), thường là 360 / số hướng.
- r: Độ dài cung, ở đây là phần trăm tần suất.
- marker_color: Màu sắc dựa trên mức độ, sử dụng colormap
Viridis. - hoverinfo: Thông tin hiển thị khi rê chuột.
6.6 Lưu Kết Quả
fig.write_image("wind_rose.png")
fig.write_html("wind_rose.html")
7. Thiết Kế Thẩm Mỹ Và Đọc Hiểu
7.1 Màu Sắc

Có thể bạn quan tâm: Cách Vẽ Biểu Đồ Cột Ngang: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
- Palette giới hạn: Không nên dùng quá 5 màu để tránh rối mắt.
- Tương phản: Đảm bảo màu nền và màu cung đủ tương phản.
- Màu đại diện: Nếu biểu diễn tốc độ gió, dùng dải màu từ xanh (nhẹ) → đỏ (mạnh).
7.2 Nhãn và Đánh Dấu
- Nhận diện hướng: Đặt nhãn hướng ở ngoài vòng tròn, dùng font size lớn hơn.
- Giá trị: Hiển thị phần trăm hoặc giá trị thực tế trên mỗi cung.
- Tooltip: Khi hiển thị trên web, cung cấp tooltip chi tiết (hướng, tần suất, mức độ).
7.3 Bố Cục
- Tỷ lệ: Đảm bảo vòng tròn không quá lớn so với trang, để còn chỗ cho tiêu đề và chú thích.
- Chú thích (Legend): Đặt ở góc phải hoặc dưới, rõ ràng.
- Tiêu đề: Ngắn gọn, cung cấp ngữ cảnh (ví dụ: “Phân bố Tốc độ Gió tại Trạm X, 2026”).
7.4 Tránh Sai Lầm Thường Gặp
| Sai lầm | Hậu quả | Cách khắc phục |
|---|---|---|
| Không chuẩn hoá dữ liệu (độ dài cung không tỷ lệ) | Đánh giá sai mức độ | Tính phần trăm hoặc chuẩn hoá trước khi vẽ |
| Quá nhiều màu | Rối mắt, khó phân biệt | Giới hạn 3‑4 màu, dùng gradient nếu cần |
| Góc không đồng đều | Khiến biểu đồ lệch | Sử dụng bước góc cố định (360/ số hướng) |
| Không có chú thích | Người xem không hiểu ý nghĩa màu | Thêm legend và tooltip chi tiết |
8. Ứng Dụng Thực Tế
8.1 Ngành Thời Tiết
- Ví dụ: Tại trạm quan trắc Hà Nội, ghi nhận tốc độ gió trong năm 2026. Biểu đồ hoa gió cho thấy gió mạnh nhất hướng Tây Bắc (NW) vào mùa thu, giúp quy hoạch vị trí turbine.
8.2 Marketing
- Khảo sát khách hàng: Hướng tiếp cận (Online, Offline, Email, Mạng xã hội) và mức độ hài lòng. Biểu đồ hoa gió cho thấy khách hàng hài lòng nhất khi tiếp cận qua Email (E) và mạng xã hội (NE).
8.3 Quản Lý Dự Án
- Rủi ro: Các rủi ro được phân loại theo “Nguồn” (Kỹ thuật, Tài chính, Nhân lực, Thị trường). Biểu đồ giúp nhìn nhanh nguồn rủi ro chính và mức độ ảnh hưởng.
8.4 Sản Xuất

- Lỗi máy móc: Ghi nhận số lần lỗi theo ca làm việc (Sáng, Chiều, Tối). Biểu đồ hoa gió hiển thị tần suất lỗi cao nhất vào ca chiều (E) – gợi ý cải thiện bảo trì.
9. Tự Động Hóa Và Tái Sử Dụng
9.1 Scripting trong Python
Bạn có thể viết một hàm tổng quát:
def draw_wind_rose(df, direction_col='direction', value_col='frequency', level_col=None, title='Biểu Đồ Hoa Gió'): import plotly.graph_objects as go order = 'N','NE','E','SE','S','SW','W','NW' df = df.set_index(direction_col).locorder.reset_index() df'percent' = dfvalue_col / dfvalue_col.sum() 100 theta = np.arange(0, 360, 360/len(order)) fig = go.Figure() fig.add_trace(go.Barpolar(r=df'percent', theta=theta, width=360/len(order), marker_color='rgba(30,144,255,0.6)', name='Tần suất')) if level_col: fig.add_trace(go.Barpolar(r=df'percent'0.5, theta=theta, width=360/len(order), marker_color=dflevel_col, marker_colorscale='Viridis', name='Mức độ')) fig.update_layout(title=title, polar=dict(radialaxis=dict(showticklabels=False), angularaxis=dict(rotation=90, direction='clockwise'))) fig.show()
Bạn chỉ cần gọi draw_wind_rose(df) với DataFrame đã chuẩn bị.
9.2 Tích Hợp vào Dashboard
- Power BI: Sử dụng visual custom “Wind Rose” từ marketplace.
- Tableau: Dùng “Radial Bar Chart” và tùy chỉnh góc.
- Web: Nhúng HTML của Plotly (
fig.write_html) vào trang web.
10. Kiểm Tra và Đánh Giá Chất Lượng Biểu Đồ
- Độ chính xác: So sánh tổng phần trăm = 100% (hoặc tổng tần suất đúng).
- Tính dễ đọc: Nhãn có đủ không gian, màu sắc không chồng chéo.
- Tính nhất quán: Khi so sánh nhiều biểu đồ, giữ cùng một thứ tự hướng và cùng một dải màu.
- Phản hồi người dùng: Thu thập ý kiến người xem (có hiểu nhanh không, có nhầm lẫn màu không).
11. Tổng Kết
Biểu đồ hoa gió là một công cụ mạnh mẽ để truyền tải dữ liệu đa chiều, đặc biệt là những thông tin liên quan đến hướng, tần suất và mức độ. Qua bài viết, bạn đã nắm được:
- Khái niệm và cấu trúc cơ bản của biểu đồ.
- Khi nào nên lựa chọn biểu đồ hoa gió và khi nào nên tránh.
- Cách chuẩn bị dữ liệu sao cho sạch, chuẩn hoá và sắp xếp hợp lý.
- Lựa chọn công cụ phù hợp: từ Excel cho người mới, tới Python/Plotly cho lập trình viên.
- Các bước thực hiện chi tiết trong Excel và Python, kèm ví dụ mã nguồn.
- Mẹo thiết kế thẩm mỹ, tránh lỗi thường gặp và cách tối ưu hoá trải nghiệm người dùng.
- Ứng dụng thực tế trong thời tiết, marketing, quản lý dự án và sản xuất.
- Cách tự động hoá quy trình vẽ biểu đồ để tái sử dụng trong các báo cáo định kỳ.
Với kiến thức này, bạn có thể tự tin tạo ra những biểu đồ hoa gió chuyên nghiệp, hỗ trợ quyết định nhanh chóng và truyền đạt thông tin một cách sinh động. Hãy bắt tay vào thực hành, thử nghiệm các màu sắc, cấu trúc và dữ liệu thực tế của mình. Khi đã thành thạo, bạn sẽ nhận ra sức mạnh của việc “vẽ một vòng tròn” để kể một câu chuyện dữ liệu phong phú và sâu sắc. Chúc bạn thành công!
