Lựa chọn cách biểu diễn dữ liệu phù hợp trong Data Visualization

Nguyễn Tuấn
ZaloPay Engineering
10 min readJan 11, 2019

Data Visualization là phương pháp biểu diễn dữ liệu thành hình ảnh dạng sơ đồ, đường, cột, … giúp dữ liệu dễ hiểu, dễ tiếp cận và sử dụng hơn.

Dữ liệu trong Data Visualization chia 2 loại sử dụng kết hợp với nhau:

  • Categorical (Phân loại): Mô tả bản chất của dữ liệu. VD: “Tên”, “Tuổi”. Bao gồm cả dữ liệu định tính (không phải dữ liệu số).
  • Quantitative (Định lượng): Dữ liệu dạng số.

Có 2 cách biểu diễn thông tin chính:

  • Table: Tổ chức dữ liệu theo dạng bảng. Được dùng chủ yếu để tìm kiếm giá trị cụ thể.
  • Graph: Tổ chức dữ liệu dạng biểu đồ. Thường dùng để thể hiện mối quan hệ giữa dữ liệu. Một graph chứa các trục làm độ đo và có gắn nhãn. Dữ liệu được biểu diễn thành các cột, đường, điểm, …

Biểu diễn dữ liệu

Để biểu diễn dữ liệu phù hợp, ta cần phải dựa trên các tiêu chí:

  • Những đặc trưng nào cần được biểu diễn?
  • Giá trị của đặc trưng đó là rời rạc hay liên tục? Bởi mỗi loại giá trị sẽ có cách biểu diễn khác nhau.
  • Có bao nhiêu dòng dữ liệu cần biểu diễn? Các biểu đồ khác nhau sẽ phù hợp với số lượng dữ liệu nhiều hay ít.
  • Các giá trị có phụ thuộc thời gian, phân chia theo nhóm?
  • Mình muốn truyền đạt tới người dùng điều gì? VD: sự so sánh của dữ liệu, nhận diện xu hướng dữ liệu, …

Bên cạnh đó để lựa chọn loại biểu đồ phù hợp cũng cần phải xét những tiêu chí sau:

  • Có cần so sánh dữ liệu? Các loại chart phù hợp: Column, Mekko, Bar, Pie, Line, Scatterplot, Bullet, …
  • Có cần biểu diễn sự kết hợp của các đặc trưng? Các loại chart phù hợp: Pie, Stacked Bar, Mekko, Stacked Column, Area, Waterfall, …
  • Có cần hiểu phân phối của dữ liệu? Các biểu đồ dạng phân phối giúp hiểu thêm về các phạm vi, xu hướng thông thường và miền giá trị của dữ liệu. Các chart phù hợp: Scatterplot, Mekko, Line, Column, Bar.
  • Có cần phân tích xu hướng dữ liệu? Các chart sau giúp biết thêm thông tin về cách một tập dữ liệu được thực hiện trong một khoảng thời gian cụ thể: Line, Dual-Axis Line, Column.
  • Có cần xem mối quan hệ giữa các tập dữ liệu? Các chart này có thể show ra những ảnh hưởng tích cực hoặc tiêu cực của thuộc tính này tới các thuộc tính khác: Scatterplot, Bubble, Line.

Có 4 nhóm biểu đồ chính:

  • Comparison: Thể hiện sự so sánh giữa 1 hoặc nhiều tập dữ liệu.
  • Relationship: Thể hiện mối quan hệ hoặc tương quan giữa 2 hoặc nhiều giá trị.
  • Composition: Thể hiện những phần trong tổng thể và thay đổi theo thời gian.
  • Distribution: Thể hiện phân phối theo thời gian, giúp nhìn thấy được xu hướng và phạm vi dữ liệu.

Sơ đồ sau gợi ý các dạng biểu đồ và lựa chọn như thế nào. Tùy thuộc vào nhu cầu chúng ta có thể kết hợp các dạng biểu đồ và thể hiện chúng cho phù hợp.

Các loại biểu đồ thông dụng

Column Chart

Column chart thể hiện sự so sánh giữa các phần tử khác nhau hoặc một phần tử theo thời gian.

Lưu ý:

  • Chỉ nên dùng nếu tập các phần tử nhỏ (từ 5–7).
  • Nếu có chiều thời gian thì chiều thời gian nên là trục hoành và biểu diễn thời gian tăng dần từ trái sang phải.
  • Trục chứa số nên bắt đầu từ 0, mắt người nhạy cảm với chiều cao nên rất dễ kết luận sai lầm nếu phần dưới bị lược bỏ bớt.
  • Chỉ dùng column chart để show trend nếu số lượng dữ liệu đủ nhỏ (dưới 20) và đều có giá trị xuất hiện rõ ràng.

Một dạng của column chart là Column Histogram.

Column Histogram dùng để thể hiện phân phối và mối quan hệ của một giá trị đơn trên tổng thể.
Ví dụ bên dưới là phân phối số lượng bí đỏ theo kích thước.

Một dạng khác là Stacked Column Chart , được dùng thể hiện sự kết hợp thành phần. Không nên dùng quá nhiều thành phần (nên dùng ít hơn 5) để tránh làm rối.

Bar Chart

Bar chart là một dạng column chart nằm ngang. Được dùng nếu chủ đề so sánh có tên dài vì nó cho nhiều space hơn. Có thể dùng Bar chart nếu số lượng chủ đề so sánh > 7 (không quá 15).

Một dạng khác là Bar Histogram Chart, cũng được dùng để thể hiện phân phối. Ví dụ điển hình là biểu đồ dân số.

Một dạng tương tự là Stacked Bar Chart, tương tự như Stacked Column Chart, nhấn mạnh vào sự kết hợp chứ không nhấn mạnh vào so sánh.

Line Chart

Line Chart thể hiện xu hướng hoặc quá trình theo thời gian. Nên dùng nếu dữ liệu dạng liên tục. Có thể sử dụng thay thế Column Chart nếu số lượng dữ liệu quá nhiều (> 20).

Lưu ý:

  • Chỉ dùng đường liền.
  • Đừng vẽ nhiều hơn 4 đường.
  • Đường không nên dao động quá 2/3 chiều cao.
  • Chỉ nên dùng thể thể hiện dữ liệu mà cách nhau một khoảng bằng nhau.
  • Thời gian nên từ trái sang phải.

Một dạng khác là Timeline Chart, điểm khác biệt là nó có thể tương tác được, cho phép zoom in/out.

Dual Axis Chart

Dual Axis Chart thể hiện dữ liệu sử dụng 2 trục tung và chia sẻ chung 1 trục hoành. Vì vậy nó có thể hiện được 3 thuộc tính của dữ liệu.

Lưu ý:

  • Nên để trục tung bên trái cho thuộc tính chính (mắt người nhận diện tự nhiên từ trái sang phải).
  • Mỗi trục tung nên dùng kiểu biểu diễn khác nhau và chọn màu tương phản để dễ nhận diện (cột với đường chẳng hạn).

Area Chart

Area Chart thực chất là dạng biểu đồ đường được tô màu ở dưới. Phù hợp để thể hiện xu hướng và so sánh. Best use là dùng thể hiện giá trị tích lũy theo thời gian. Không nên dùng để thể hiện giá trị dao động như chứng khoán.

Một dạng tương tự là Stacked Area Chart, được dùng thể hiện sự thay đổi thành phần theo thời gian.

Không dùng nếu như cần một sự so sánh chính xác và không dùng quá 5 thành phần.

Pie Chart

Pie Chart được sử dụng để thể hiện các thành phần trong tổng thể với đơn vị phần trăm. Vì vậy thường dùng để so sánh hoặc kết hợp. Pie Chart không được dùng để so sánh một phần riêng biệt với các phần còn lại hoặc thể hiện giá trị chính xác.

Lưu ý:

  • Sắp xếp giá trị từ cao tới thấp và biểu diễn cùng chiều kim đồng hồ.
  • Đừng thể hiện dạng 3D hoặc nghiêng vì sẽ khiến người xem khó đọc vì phải cố so sánh các góc.
  • Không dùng Pie Chart nếu có quá nhiều thành phần với tỉ lệ tương tự nhau.
  • Lý tưởng nhất khi dùng là chỉ có 2 thành phần (sẽ dễ so sánh hơn), còn không, nó phải thực sự khác biệt một cách rõ ràng.
  • Nếu có thể, nên tránh dùng Pie Chart. Con người suy nghĩ và đánh giá các hình ảnh thể hiện chiều dài tốt nhưng với các góc và diện tích, rất ít người có thể đánh giá được. Ví dụ bên dưới thể hiện điều này. Thay vì dùng Pie Chart, dùng Column sẽ dễ xem xét sự khác biệt hơn.

Một dạng khác của Pie Chart là Stacked Donut Chart, tuy nhiên, cực kỳ rối mắt và không nên dùng trong bất kỳ tình huống nào.

Scatterplot Chart

Scatterplot Chart được dùng chủ yếu để phân tích tương quan và phân phối. Thường dùng để thể hiện quan hệ giữa 2 giá trị khác nhau. Nó cũng giúp thể hiện phân phối hoặc chia cụm.

Một thể hiện khác là Bubble Chart, có thể thể hiện thêm một giá trị nữa bằng cách tăng kích thước của điểm để thể hiện giá trị khác.

Lưu ý:

  • Dùng loại biểu đồ này để thể hiện quan hệ giữa 2 (scatter) hoặc 3 (bubble) giá trị.
  • Biểu đồ này thể hiện tốt các quan hệ nhưng không chính xác để so sánh.

Mekko Chart

Mekko Chart thường dùng để so sánh giá trị, đo lường mỗi sự kết hợp và thể hiện dữ liệu được phân phối ra sao. Mekko Chart tương tự Stacked Bar Chart nhưng trục hoành thường không là chiều thời gian.

Waterfall Chart

Waterfall Chart thường được sử dụng để cho biết giá trị ban đầu bị ảnh hưởng bởi các giá trị trung gian — dương hoặc âm — và dẫn đến giá trị cuối cùng. Vì vậy có thể được dùng để thể hiện thành phần của một số. VD: Giới thiệu cách tổng doanh thu của công ty bị ảnh hưởng bởi các phòng ban khác nhau và dẫn đến một số lợi nhuận cụ thể.

Lưu ý:

  • Nên chọn màu tương phản để thể hiện các tập dữ liệu khác nhau.
  • Chọn màu nóng để thể hiện tăng và màu lạnh để thể hiện giảm.

Funnel Chart

Funnel Chart cho biết một loạt các bước và tỷ lệ hoàn thành cho mỗi bước. Điều này có thể được sử dụng để theo dõi quá trình bán hàng hoặc tỷ lệ chuyển đổi trên một loạt các trang hoặc các bước.

Một dạng khác là Pyramid Chart với hình tam giác xuôi, được dùng để thể hiện các mối quan hệ dựa trên mức độ, thứ bậc. Các lớp xếp chồng cũng có thể hiển thị thứ tự các bước trong một quy trình cụ thể.

Heatmap Chart

Heatmap Chart thường dùng để thể hiện quan hệ giữa 2 đặc trưng và dùng màu sắc từ đậm tới nhạt để thể hiện giá trị từ cao tới thấp.

Lưu ý:

  • Chỉ sử dụng 1 màu và chuyển đậm/nhạt để thể hiện mức độ.
  • Tránh sử dụng nhiều mẫu khác nhau.

Treemap Chart

Treemap Chart hiển thị các phần trong tổng thể. Chúng hiển thị thông tin phân cấp dưới dạng một nhóm các hình chữ nhật khác nhau về kích thước và màu sắc, tùy thuộc vào giá trị dữ liệu. Kích thước của mỗi hình chữ nhật đại diện cho một số lượng, trong khi màu sắc có thể đại diện cho một giá trị số hoặc một thể loại.

Treemap Chart cho phép xem xu hướng và so sánh một cách nhanh chóng.

Lưu ý:

  • Sử dụng Treemap với một thông diệp rõ ràng.
  • Sử dụng màu tương phản để dễ nhìn.
  • Đặt label phù hợp với chữ và số.

Map Chart

Map Chart được dùng chủ yếu để thể hiện các đối tượng liên quan đến địa lý. Thông thường dùng màu sắc để phân biệt. Bên cạnh đó có thể thêm các dạng biểu đồ khác như cột, điểm, … để thể hiện các khía cạnh muốn hướng tới.

Gauge Chart

Gauge Chart thông thường thể hiện một giá trị, so sánh bằng các chỉ số màu thể hiện level. Thông thường màu xanh là “tốt” và màu đỏ là “có vấn đề”. Thường dùng Gauge Chart để thể hiện thước đo như KPI, tiến trình tới mục tiêu.

Word cloud

Word cloud một dạng danh sách thể hiện có trọng số. Phần tử quan trọng hơn thường được hiển thị to hơn.

Lưu ý:

  • Sử dụng tùy theo ngữ cảnh.
  • Dùng để thể hiện sự thường xuyên, tránh dùng để thể hiện sự phức tạp.
  • Tránh đặt gần nhau những chữ gần màu hoặc kích thước.

Network

Thường thể hiện mối quan hệ với nhau giữa các node. Ngoài ra kích thước node cũng đại diện cho giá trị/mức độ/tầm quan trọng của node đó.

Network Graph thường khá phức tạp và chỉ nên ở dạng interactive.

References:

--

--