TÓM TẮT
- 1 1. Giới thiệu chung về biểu đồ đường
- 2 2. Chuẩn bị dữ liệu trước khi vẽ
- 3 3. Lựa chọn công cụ vẽ biểu đồ đường
- 4 4. Hướng dẫn vẽ biểu đồ đường bằng Excel
- 5 5. Vẽ biểu đồ đường bằng Python – Matplotlib
- 6 6. Vẽ biểu đồ đường bằng R – ggplot2
- 7 7. Các nguyên tắc thiết kế biểu đồ đường đẹp và chuyên nghiệp
- 8 8. Khi nào nên dùng biểu đồ đường và khi nào không nên dùng
- 9 9. Các lỗi thường gặp khi vẽ biểu đồ đường và cách khắc phục
- 10 10. Tối ưu hoá biểu đồ đường cho web và mobile
- 11 11. Thực hành: Xây dựng dashboard mini với Power BI
- 12 12. Kết luận
1. Giới thiệu chung về biểu đồ đường
Biểu đồ đường (line chart) là một trong những loại biểu đồ phổ biến và hiệu quả nhất trong việc trực quan hoá dữ liệu thời gian, xu hướng và mối quan hệ giữa các biến số. Khi so sánh các giá trị theo chuỗi thời gian, biểu đồ đường giúp người xem nhanh chóng nhận ra xu hướng tăng, giảm, dao động hoặc các điểm bất thường. Vì tính đơn giản, dễ hiểu và khả năng hiển thị nhiều dòng dữ liệu cùng lúc, biểu đồ đường thường được sử dụng trong:
- Kinh doanh: Theo dõi doanh thu, lợi nhuận, số lượng bán hàng qua các tháng, quý, năm.
- Khoa học: Phân tích dữ liệu thời gian thực, ví dụ như nhiệt độ, độ ẩm, mức độ ô nhiễm.
- Giáo dục: Trình bày kết quả học tập, điểm số của học sinh qua các kỳ thi.
- Công nghệ thông tin: Giám sát hiệu suất hệ thống, lưu lượng mạng, thời gian phản hồi.
Trong bài viết này, chúng ta sẽ đi sâu vào cách vẽ biểu đồ đường từ các bước chuẩn bị dữ liệu, lựa chọn công cụ, thiết kế đồ họa, tới các kỹ thuật nâng cao như tùy chỉnh màu sắc, nhãn, chú giải, và tối ưu hoá cho các nền tảng khác nhau (web, báo cáo PDF, slide trình chiếu).
2. Chuẩn bị dữ liệu trước khi vẽ
2.1. Thu thập và làm sạch dữ liệu
- Nguồn dữ liệu: Dữ liệu có thể đến từ file CSV, Excel, cơ sở dữ liệu SQL, API web, hoặc thậm chí là nhập tay. Đảm bảo rằng dữ liệu được cập nhật và đáng tin cậy.
- Kiểm tra thiếu dữ liệu (missing values): Đối với các ngày hoặc thời gian không có giá trị, bạn có thể:
- Loại bỏ toàn bộ dòng (nếu ít và không ảnh hưởng tới xu hướng).
- Điền giá trị trung bình, trung vị, hoặc dùng phương pháp nội suy (interpolation) để ước tính.
- Định dạng thời gian: Đảm bảo cột thời gian được định dạng chuẩn (ví dụ:
YYYY-MM-DDhoặcDD/MM/YYYY). Khi sử dụng các công cụ như Excel hay Python, việc chuyển đổi sang kiểudatetimelà cần thiết.
2.2. Lựa chọn biến số và phạm vi thời gian
- Biến số phụ thuộc (Y-axis): Thường là giá trị mà bạn muốn thể hiện (doanh thu, nhiệt độ, số lượng, v.v.).
- Biến số độc lập (X-axis): Thông thường là thời gian (ngày, tuần, tháng, năm).
- Phạm vi thời gian: Xác định rõ ràng khoảng thời gian hiển thị (ví dụ: 01/2026 – 12/2026). Điều này giúp tránh việc tràn dữ liệu và làm biểu đồ trở nên rối mắt.
2.3. Tổ chức dữ liệu dạng bảng
| Ngày | Doanh thu (triệu VND) |
|---|---|
| 01/01/2026 | 120 |
| 02/01/2026 | 135 |
| 03/01/2026 | 128 |
| … | … |
| 31/12/2026 | 210 |
Lưu ý: Đối với nhiều dòng (multiple series), có thể có thêm cột “Sản phẩm” hoặc “Khu vực” để phân biệt các đường khác nhau.

Có thể bạn quan tâm: Cách Vẽ Biểu Đồ Pp (powerpoint) Chuẩn Chuyên Nghiệp: Hướng Dẫn Từ A Đến Z
3. Lựa chọn công cụ vẽ biểu đồ đường
3.1. Excel / Google Sheets
- Ưu điểm: Dễ dùng, tích hợp sẵn trong môi trường văn phòng, phù hợp cho báo cáo nhanh.
- Nhược điểm: Giới hạn trong việc tùy chỉnh nâng cao, không phù hợp cho biểu đồ tương tác phức tạp.
3.2. Python (Matplotlib, Seaborn, Plotly)
- Matplotlib: Thư viện cơ bản, tùy chỉnh sâu, nhưng không có sẵn tính năng tương tác.
- Seaborn: Xây dựng trên Matplotlib, cung cấp giao diện gọn gàng hơn cho các biểu đồ thống kê.
- Plotly: Hỗ trợ biểu đồ tương tác, nhúng trong web, phù hợp cho dashboard.
3.3. R (ggplot2)
- ggplot2: Được thiết kế theo nguyên tắc Grammar of Graphics, mạnh mẽ trong việc tạo biểu đồ đa lớp, tùy chỉnh màu sắc, theme, và dễ mở rộng.
3.4. Các công cụ trực tuyến (Datawrapper, Tableau Public, Power BI)
- Datawrapper: Dễ dùng, xuất biểu đồ dưới dạng PNG, SVG, hoặc nhúng HTML.
- Tableau Public / Power BI: Tạo dashboard tương tác, hỗ trợ nhiều nguồn dữ liệu, nhưng cần thời gian học.
Trong phần tiếp theo, chúng ta sẽ thực hành vẽ biểu đồ đường bằng Excel, Python (Matplotlib) và ggplot2 để so sánh quy trình và kết quả.
4. Hướng dẫn vẽ biểu đồ đường bằng Excel

Có thể bạn quan tâm: Cách Vẽ Biên Dạng Cam: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
4.1. Nhập dữ liệu vào bảng tính
- Mở Excel, tạo một sheet mới.
- Nhập cột “Ngày” và “Doanh thu” như trong bảng ở mục 2.3.
- Đảm bảo cột ngày được định dạng là
Date.
4.2. Chèn biểu đồ đường
- Chọn toàn bộ dữ liệu (cả hai cột).
- Vào tab Insert → Charts → Line → Chọn Line with Markers (đường có điểm đánh dấu).
- Excel sẽ tự động tạo biểu đồ với trục X là ngày và trục Y là doanh thu.
4.3. Tùy chỉnh biểu đồ
- Thêm tiêu đề: Click vào “Chart Title” → Nhập “Biểu Đồ Doanh Thu Hàng Tháng Năm 2026”.
- Định dạng trục X: Click trục X → Format Axis → Đặt “Axis Type” là “Date axis”, chọn “Major unit” là “Months”.
- Thêm nhãn dữ liệu: Click vào đường → Add Data Labels → Lựa chọn “Outside End”.
- Thay đổi màu sắc: Click vào đường → Format Data Series → Chọn màu xanh dương đậm.
- Thêm lưới (gridlines): Click vào trục Y → Add Major Gridlines để dễ dàng đọc giá trị.
4.4. Lưu và xuất biểu đồ
- Lưu file Excel:
Ctrl+S. - Xuất hình ảnh: Click chuột phải vào biểu đồ → Save as Picture… → Chọn định dạng PNG hoặc JPEG.
5. Vẽ biểu đồ đường bằng Python – Matplotlib
5.1. Cài đặt môi trường
pip install pandas matplotlib seaborn
5.2. Đọc dữ liệu

Có thể bạn quan tâm: Cách Vẽ Ben Trong Naruto: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns # Đọc file CSV
df = pd.read_csv('doanhthu_2023.csv', parse_dates='Ngày')
df.sort_values('Ngày', inplace=True)
5.3. Vẽ biểu đồ cơ bản
plt.figure(figsize=(12, 6))
plt.plot(df'Ngày', df'Doanh thu (triệu VND)', color='steelblue', linewidth=2, marker='o')
plt.title('Biểu Đồ Doanh Thu Hàng Tháng Năm 2026', fontsize=16)
plt.xlabel('Tháng', fontsize=12)
plt.ylabel('Doanh thu (triệu VND)', fontsize=12)
plt.grid(True, which='both', linestyle='--', linewidth=0.5)
plt.tight_layout()
plt.show()
5.4. Tùy chỉnh nâng cao
- Định dạng trục X hiển thị tháng:
import matplotlib.dates as mdates ax = plt.gca()
ax.xaxis.set_major_locator(mdates.MonthLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%b %Y'))
plt.xticks(rotation=45)
- Thêm chú giải (legend) cho nhiều dòng:
# Giả sử có cột 'Sản phẩm'
for product, group in df.groupby('Sản phẩm'): plt.plot(group'Ngày', group'Doanh thu (triệu VND)', label=product, marker='o')
plt.legend(title='Sản phẩm')
- Lưu biểu đồ dưới dạng PNG và SVG:
plt.savefig('doanhthu_2023.png', dpi=300)
plt.savefig('doanhthu_2023.svg')
5.5. Biểu đồ tương tác với Plotly
Nếu muốn biểu đồ có thể hover, zoom:
import plotly.express as px fig = px.line(df, x='Ngày', y='Doanh thu (triệu VND)', title='Doanh Thu Hàng Tháng 2026', markers=True)
fig.update_xaxes(dtick="M1", tickformat="%b\n%Y")
fig.show()
6. Vẽ biểu đồ đường bằng R – ggplot2
6.1. Cài đặt và nạp gói
install.packages(c("ggplot2", "readr", "lubridate"))
library(ggplot2)
library(readr)
library(lubridate)
6.2. Đọc dữ liệu
df <- read_csv("doanhthu_2023.csv")
df$Ngày <- dmy(df$Ngày) # hoặc ymd nếu định dạng khác
6.3. Vẽ biểu đồ cơ bản

Có thể bạn quan tâm: Cách Vẽ Ben Siêu Tốc: Hướng Dẫn Chi Tiết Từ A Đến Z Để Tạo Nên Những Tác Phẩm Độc Đáo
ggplot(df, aes(x = Ngày, y = `Doanh thu (triệu VND)`)) + geom_line(color = "steelblue", size = 1) + geom_point(color = "steelblue", size = 2) + labs(title = "Biểu Đồ Doanh Thu Hàng Tháng Năm 2026", x = "Tháng", y = "Doanh thu (triệu VND)") + theme_minimal() + scale_x_date(date_labels = "%b %Y", date_breaks = "1 month") + theme(axis.text.x = element_text(angle = 45, hjust = 1))
6.4. Thêm nhiều dòng (multiple series)
ggplot(df, aes(x = Ngày, y = `Doanh thu (triệu VND)`, color = Sản phẩm)) + geom_line(size = 1) + geom_point(size = 2) + labs(title = "Doanh Thu Theo Sản Phẩm Năm 2026", x = "Tháng", y = "Doanh thu (triệu VND)", color = "Sản phẩm") + theme_light() + scale_x_date(date_labels = "%b %Y", date_breaks = "1 month")
6.5. Lưu biểu đồ
ggsave("doanhthu_2023.png", width = 12, height = 6, dpi = 300)
7. Các nguyên tắc thiết kế biểu đồ đường đẹp và chuyên nghiệp
- Đơn giản hoá: Tránh quá tải thông tin. Mỗi biểu đồ nên truyền tải một thông điệp chính.
- Màu sắc hợp lý: Sử dụng màu tương phản cho các đường, nhưng không quá chói. Palettes như
viridis,Paired(R) hoặctab10(Matplotlib) là lựa chọn an toàn. - Đánh dấu điểm quan trọng: Sử dụng annotation (chú thích) để làm nổi bật các điểm cực trị, sự kiện đặc biệt (ví dụ: “Chiến dịch khuyến mãi”).
- Đặt lưới nhẹ nhàng: Gridlines nên là nét mỏng, màu xám nhạt, giúp mắt người đọc không bị phân tán.
- Sử dụng font chữ rõ ràng: Arial, Calibri, hoặc Helvetica thường được dùng trong báo cáo doanh nghiệp.
- Thêm nguồn dữ liệu: Đặc biệt trong các báo cáo công cộng, cần ghi rõ nguồn dữ liệu (ví dụ: “Nguồn: Hệ thống ERP công ty”).
- Kiểm tra độ chính xác: Đảm bảo trục Y bắt đầu từ 0 (nếu phù hợp) để tránh gây hiểu lầm về mức độ thay đổi.
8. Khi nào nên dùng biểu đồ đường và khi nào không nên dùng
| Trường hợp | Nên dùng biểu đồ đường | Không nên dùng biểu đồ đường |
|---|---|---|
| Dữ liệu thời gian liên tục | ✔ Khi dữ liệu được ghi lại theo ngày, tháng, năm, giờ. | ✖ Khi dữ liệu không có tính liên tục (ví dụ: danh sách các mục rời rạc). |
| So sánh nhiều danh mục | ✔ Khi số lượng danh mục ≤ 5, mỗi danh mục có xu hướng riêng. | ✖ Khi danh mục > 5, biểu đồ sẽ rối mắt; nên dùng biểu đồ cột hoặc heatmap. |
| Biểu diễn tần suất | ✖ Khi muốn hiển thị tần suất hoặc phân bố (histogram, bar chart). | ✔ Khi muốn xem xu hướng tổng thể. |
| Dữ liệu có giá trị không liên tục | ✖ Khi có nhiều khoảng trống lớn, biểu đồ đường có thể gây hiểu lầm. | ✔ Khi dữ liệu đầy đủ, không có khoảng trống lớn. |
9. Các lỗi thường gặp khi vẽ biểu đồ đường và cách khắc phục
- Trục X không hiển thị đúng định dạng ngày
- Nguyên nhân: Định dạng chuỗi thay vì kiểu
datetime. -
Giải pháp: Chuyển đổi cột sang kiểu ngày (
pd.to_datetimetrong Python,as.Datetrong R, hoặc định dạng ngày trong Excel). -
Các đường chồng lên nhau gây khó nhìn
- Nguyên nhân: Quá nhiều series hoặc màu sắc quá giống nhau.
-
Giải pháp: Giảm số series, sử dụng màu sắc phân biệt, hoặc tạo các subplot riêng.
-
Biểu đồ bị “cắt” các giá trị đầu/cuối
- Nguyên nhân: Trục Y bắt đầu không từ 0 hoặc không bao phủ toàn bộ dữ liệu.
-
Giải pháp: Đặt
ylimsao cho bao phủ toàn bộ giá trị, hoặc thêm khoảng đệm (padding). -
Nhãn trục X quá chồng chéo
- Nguyên nhân: Quá nhiều điểm thời gian hiển thị.
-
Giải pháp: Xoay nhãn (
rotation=45), giảm tần suất hiển thị (date_locator), hoặc hiển thị chỉ các mốc quan trọng. -
Không có chú giải (legend) khi có nhiều đường
- Nguyên nhân: Bỏ qua việc thêm legend hoặc legend bị ẩn.
- Giải pháp: Thêm
plt.legend()trong Matplotlib, hoặc+ labs(color = "Tên")trong ggplot2.
10. Tối ưu hoá biểu đồ đường cho web và mobile
10.1. Dùng thư viện JavaScript (Chart.js, D3.js)

- Chart.js: Dễ tích hợp, hỗ trợ responsive, có sẵn theme.
- D3.js: Linh hoạt, cho phép tạo biểu đồ tùy chỉnh hoàn toàn, nhưng yêu cầu kiến thức JS sâu hơn.
Ví dụ nhanh với Chart.js
<canvas id="myLineChart"></canvas>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
const ctx = document.getElementById('myLineChart').getContext('2d');
const data = { labels: 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', datasets: { label: 'Doanh thu (triệu VND)', data: 120, 135, 128, 150, 165, 210, borderColor: 'rgba(54, 162, 235, 1)', fill: false, tension: 0.1 }
};
new Chart(ctx, { type: 'line', data, options: { responsive: true } });
</script>
10.2. Đảm bảo tính responsive
- Sử dụng
width: 100%vàheight: autocho canvas. - Đặt
maintainAspectRatio: falsetrong Chart.js để biểu đồ tự điều chỉnh chiều cao.
10.3. Tối ưu dung lượng dữ liệu
- Khi dữ liệu lớn (hàng ngàn điểm), giảm số điểm bằng cách aggregate (tổng hợp) theo tuần, tháng.
- Hoặc dùng sampling: chỉ lấy mỗi N điểm để giảm tải cho trình duyệt.
11. Thực hành: Xây dựng dashboard mini với Power BI
- Nhập dữ liệu: Import file CSV vào Power BI Desktop.
- Tạo visual: Chọn “Line chart” → Kéo trường “Ngày” vào Axis, “Doanh thu” vào Values.
- Thêm slicer: Thêm slicer cho “Sản phẩm” để người dùng có thể lọc dữ liệu.
- Định dạng: Vào “Format” → “Data colors” → Chọn palette màu.
- Publish: Đăng lên Power BI Service, bật tính năng “Responsive” để biểu đồ hiển thị tốt trên mobile.
12. Kết luận
Việc vẽ biểu đồ đường không chỉ là một kỹ năng cơ bản trong phân tích dữ liệu mà còn là công cụ truyền đạt thông tin mạnh mẽ giúp người nhận nhanh chóng nắm bắt xu hướng và đưa ra quyết định. Từ việc chuẩn bị dữ liệu sạch, lựa chọn công cụ phù hợp (Excel, Python, R, hoặc các nền tảng trực tuyến), đến việc áp dụng các nguyên tắc thiết kế và tối ưu hoá cho môi trường web hay mobile, mỗi bước đều ảnh hưởng đến chất lượng và hiệu quả của biểu đồ.
Trong thực tế, chúng ta thường phải cân nhắc:
- Mục tiêu truyền tải: Xu hướng tổng thể, so sánh nhiều danh mục, hay phát hiện bất thường?
- Đối tượng người xem: Quản lý cấp cao, nhà phân tích, hay khách hàng bên ngoài?
- Ngữ cảnh sử dụng: Báo cáo PDF, slide PowerPoint, dashboard tương tác, hay website công cộng?
Bằng cách nắm vững các kỹ thuật và lưu ý trên, bạn sẽ tự tin tạo ra những biểu đồ đường đẹp, chính xác, và truyền cảm hứng cho người xem. Hãy luôn nhớ rằng, một biểu đồ tốt không chỉ là việc thể hiện dữ liệu, mà còn là cách kể một câu chuyện bằng số liệu. Chúc bạn thành công trong mọi dự án phân tích dữ liệu!
