Skip to main content

Tableau Tips #02 – Cách tạo và sử dụng tọa độ cho phân tích dữ liệu

The Kraken - Tableau art
Chia sẻ ngay tại đây!
  • 1
  •  
  •  
  •  
  •  
    1
    Share

Chào các bạn quay lại với series hướng dẫn sử dụng Tableau (BI tool) cho Data Analyst hoặc BI developer/analyst. Hôm nay chúng ta sẽ cùng nhau tìm hiểu qua cách sử dụng tọa độ trong Tableau để thực hiện một số loại phân tích dữ liệu nâng cao mà chúng ta không thể thực hiện được với các biểu đồ mặt định của Tableau.

Sử dụng Tọa độ trong Tableau cho Advanced Analytics

Trong bài viết trước mình đã sử dụng phương pháp này để tạo ra bản đồ Việt Nam dạng Hex-map. Các bạn có thể đọc cách hướng dẫn chi tiết tại đây.

Bài này mình sẽ đi sâu hơn về cách để các bạn có thể hiểu và tự sáng tạo các biểu đồ cho riêng mình trên Tableau. Tin vui là nó khá đơn giản về phần cơ bản, cái khó chỉ nằm ở sự sáng tạo của bạn mà thôi. Nếu các bạn muốn theo đuổi con đường phân tích dữ liệu với Tableau thì bài này sẽ khá hữu ích về sau.

Chúng ta sẽ cùng nhau giải quyết các vấn sau:

  • Tọa độ trong Tableau hoạt động như thế nào?
  • 4 bước để thiết kế và sử dụng tọa độ bằng Excel/Google Sheet
  • Những ví dụ thực tế trong sử dụng tọa độ
  • Những bài tập thực hành

Làm việc với tọa độ trong Tableau

Nếu các bạn từng làm phân tích dữ liệu hay trực quan hóa dữ liệu với Tableau, các bạn chắc hẳn đã làm quen với một số loại biểu đồ phổ biến của Tableau. Sử dụng tọa độ cũng không khác gì mấy với biểu đồ Scatter Plot.

Với các bạn còn mới thì tin vui là bản chất tọa độ của Tableau không có gì phức tạp cả. Nó hoạt động giống như một trục tọa độ 2 chiều có 2 trục X-Y trong toán học. Thay vì sử dụng X-Y, trong Tableau chúng ta có thể xem X như là các cột (Column) và Y là các dòng (row).

Biểu đồ tọa độ 2 chiều
Tọa độ trong không gian 2 chiều

Với sơ đồ như trên, bây giờ chúng ta hình dung với mỗi điểm dữ liệu (data point) chúng ta sẽ gán thêm cho điểm đó một giá trị tương ứng với một tọa độ (X,Y) mà chúng ta muốn. Việc này có thể thực hiện bằng việt thêm 2 cột (x,y) ở cuối bảng ghi với một giá trị cụ thể. Những giá trị thêm vào này chỉ cung cấp thêm giá trị “địa lý/không gian” cho dữ liệu chứ không hề làm thay đổi giá trị gốc.

Bảng dưới đây là bản rút gọn của dữ liệu mình dùng cho bản đồ Việt Nam.

Khu VựcTên tỉnh/thànhDân sốXY
ĐB Sông HồngHà Nội8,053,66382.5
Đông BắcHà Giang854,679100.5
Đông BắcCao Bằng1,235,171111
Đông BắcBắc Kạn313,90591

Với bảng dữ liệu trên chúng ta vẫn giữ nguyên dữ liệu gốc, dân số, và chỉ thêm 2 cột X và Y vào cuối. Với 2 cột này chúng ta có thể hiểu là Hà Nội sẽ có tọa độ (x,y) là (8, 2.5). Tương tự với những thành phố khác. Và khi visualise bằng Tableau chúng ta sẽ thấy như sau.

Tọa độ Coordinate trong Tableau
Sử dụng tọa độ trong Tableau

Chỉ với vài điểm chúng ta khó có thể hình dung được toàn bộ bức tranh. Nhưng khi có đầy đủ toàn bộ dữ liệu chúng ta sẽ thấy hình dáng của đất nước Việt Nam khá rõ.

Cách thiết kế và gán tọa độ cho dữ liệu

Với ví dụ trên chúng ta có thể thấy được việc tạo bản đồ trên Tableau chỉ đơn giản là tạo ra các tọa độ và gán chúng vào dữ liệu gốc theo nhu cầu. Như ví dụ trên thì mình gán mỗi một tỉnh thành cho một tọa độ và dựa trên toạ độ đó để phác họa thành biểu đồ Việt Nam.

Việc tạo ra các tọa độ cũng khá đơn giản. Chúng ta có thể thực hiện theo các bước sau:

Bước 1: Xác định chức năng của mỗi tọa độ.

Phần này các bạn cần xác định xem tọa độ mà chúng ta sẽ tạo ra dựa trên yếu tố nào. Cái này thông thường sẽ là các thuộc tính hoặc danh mục (các Dimensions). Tùy mỗi mục đích khác nhau chúng ta có thể chọn thuộc tính khác nhau để thiết kế tọa độ.

Như ví dụ trên của mình thì mình chọn mỗi một tỉnh thành sẽ có một tọa độ khác nhau. Trường hợp khác các bạn có thể chọn một danh mục hoặc thuộc tính sản phẩm là một tọa độ.

Trong ví dụ dưới đây, mình muốn so sánh mối quan hệ giữa các loại Pokemon nên mình chọn Loại Pokemon để làm tọa độ. Chọn loại Pokemon để thấy sự thay đổi.

Bước 2: Thiết kế các tọa độ

Việc thiết kế các tọa độ này hoàn toàn dựa trên mục đích của các bạn muốn tạo tọa độ làm gì. Với ví dụ đầu tiên thì mình muốn dựng lại bản đồ Việt Nam với mỗi tỉnh/thành sẽ có một tọa độ nhất đinh. Những tọa độ này mình tạo ra dựa trên vị trí địa lý tương đối của mỗi tỉnh thành. Còn ví dụ về Pokemon thì mình muốn thể hiện mối quan hệ giữa các loại Pokemon nên mình thiết kế theo hình tròn.

Lúc này các bạn có thể sử dụng Excel hoặc Google Sheet hoặc chỉ cần giấy viết để thiết kế tọa độ. Hình sau là hình mà mình dùng Excel để làm vì mình có thể tùy chỉnh dễ dàng nếu có sai sót.

Thiết kế Tọa độ bản đồ bằng Excel cho Tableau
Tọa độ bản đồ được thiết kế bằng Excel

Mình tốn khá nhiều thời gian để thay đổi tọa độ của các tỉnh/thành sao cho tính chất địa lý không quá khác biệt. Đây cũng là công đoạn tốn khá nhiều thời gian. Các bạn cứ từ từ mà hưởng thụ.

Hình dưới đây là một bản mình làm thêm cho thành phố HCM. Các bạn có thể tham khảo và làm thêm để thực hành.

Bản đồ quận thành phố hồ chí minh HCM
Bản đồ quận thành phố Hồ Chí Minh

Với dữ liệu cho Pokemon thì mình làm hơi khác đi 1 tí. Vì mình cần bố trí tổng cộng 18 loại Pokemon nên cần 18 tọa độ khác nhau để hợp lại thành hình tròn. Để thực hiện việc này thì cần một tí kiến thức về toán học để có giá trị chính xác.

Mình chia hình tròn thành 18 điểm khác nhau. Với mỗi điểm như vậy mình cần tính tọa độ của nó so với vị trí trung tâm(0,0). Để tính được tọa độ chính xác mình cần biết góc của chúng là bao nhiêu độ sau đó sử dụng Sin/Cos để tính khoảng cách đến 2 trục Tung và Hoành để có giá trị chính xác. Các bạn có thể tham khảo cách tính tọa độ một số góc phổ biến như hình.

Tính góc và khoảng cách đến trung tâm
Tính góc và khoảng cách đến trung tâm

Bước 3: Tạo sự liên kết giữa các tọa độ (optional)

Đây là bước không bắt buộc như trong ví dụ về bản đồ Việt Nam và một vài ví dụ khác ở cuối bài. Nhưng trong ví dụ về Pokemon thì sau khi có được các tọa độ, chúng ta cần phải tạo sự liên kết giữa các tọa độ này. 

Các liên kết này có thể là một chiều hoặc nhiều chiều. Khi mình tạo ra vòng tròn Pokemon thì mình cần tạo liên kết 2 chiều vì các loại pokemon có tính tương khắc khác nhau. Đây cũng là bước khó nhất mình phải đối mặt khi làm vòng tròn so sánh. Tại vì lúc đó mình chỉ mới học sơ qua Tableau (tầm 2-3 tuần) và không chắc ý tưởng của mình là khả thi. Mình mất gần 1 tuần mò mẫm cuối cùng mới tìm được giải pháp.

Các bạn tham khảo bảng dưới, đây cũng chính là “linh hồn” của cái vòng tròn mà mình làm.

Relationship IDTypeAttact-DefenseEffectivenessXY
NORMAL -> FIRENORMALAttactNormal0.985-0.174
NORMAL -> FIREFIREDefenseNormal-0.643-0.766
FIRE -> WATERFIREAttactNot Very Effective-0.643-0.766
FIRE -> WATERWATERDefenseNot Very Effective01
WATER -> FIREWATERAttactSuper Effective01
WATER -> FIREFIREDefenseSuper Effective-0.643-0.766

Các bạn có thể thấy, với mỗi Relationship ID thì mình đều có 2 dòng dữ liệu. 1 dòng cho Pokemon tấn công và dòng còn lại là cho Pokemon phòng thủ. Các bạn cũng có thể thấy được rằng với mỗi liên kết mình đều cần tạo liên kết 2 chiều (Fire -> WaterWater -> Fire). Vậy nên để mỗi liên kết hoạt động chính xác, mình cần 8 dòng dữ liệu tất cả. 

Các bạn có thể xem thêm tại link này để có thêm ý tưởng về tạo mối liên kết.

Trong trường hợp này mình còn cần chú ý một điểm nữa là liên kết với chính nó. Vì với các loại pokemon khác nhau khi chúng tấn công pokemon cùng loại sẽ có các hiệu ứng khác nhau. Đây cũng là lưu ý khi các bạn muốn tạo ra liên kết. Cần kiểm tra xem có phát sinh vấn đề gì không khi chính danh mục đó liên kết với chính mình.

Bước 4: gán tọa độ vào dữ liệu gốc

Việc này thì tùy thuộc vào từng bộ dữ liệu mà cách làm khác nhau. Đối với những bộ dữ liệu nhỏ được lưu trên Excel thì có thể lưu kết quả tọa độ ra một sheet mới và sử dụng hàm Vlookup để gán cho phù hợp.

Như ví dụ trên về Thành Phố HCM mình có thể lưu kết quả ra một bảng mới với cấu trúc đơn giản như sau

Mã QuậnTên Quận/HuyệnX (Column)Y (Row)
CCCủ Chi31
HMHóc Môn42
Q12Quận 1262

Còn nếu các bạn làm việc với một dữ liệu từ data warehouse nào đó thì có thể sử dụng Join trực tiếp trên Tableau để gán dữ liệu hoặc sử dụng Join/Case trong SQL. Nguyên tắc cũng tương tự như trên, chúng ta dùng tên hoặc mã như là Key để Join.

Bạn nào chưa hiểu về Join trong SQL thì có thể đọc bài hướng dẫn SQL JOIN cơ bản tại dây.

Bước 5: Phác họa dữ liệu lên Tableau (data visualisation)

Đến lúc này thì gần như bạn đã hoàn thành 90% công việc rồi. Chúng ta chỉ cần kéo tọa độ X vào Columns và Y vào Row trong Tableau nữa là mình đã có được hình mình thiết kế.

Một lưu ý nhỏ ở đây là có thể hình của bạn sẽ bị đảo ngược. Như mình hướng dẫn trong bài viết trước về bản đồ Việt Nam, các bạn chỉ cần thêm dấu ‘-’ vào trước Y hoặc X trong Tableau là sẽ ra được như mong muốn.

Hướng dẫn tạo hex map việt nam

Tất nhiên là tùy thuộc vào độ phức tạp của dữ liệu mà bạn sử dụng, bước này cũng có thể trở nên khó hơn. Như mình thì cần một vài Calculated Filed và Parameter thì mới có thể hoạt động được.

Vậy là cơ bản chúng ta đã hiểu được cách thiết kế và sử dụng tọa độ trong Tableau. Phần còn lại chỉ nằm ở sự sáng tạo của các bạn mà thôi.
Trong phần tới mình sẽ hướng dẫn các bạn thiết kế ra được cái vòng tròn như mình làm với Pokemon. Kết hợp 2 cái này bạn có thể làm được cực nhiều việc khác nhau hơn nữa.

Bây giờ chúng ta cùng xem các bạn có thể sử dụng phương pháp tọa độ này trong những trường hợp thực tế nào nhé.

Ứng dụng thực tế của phương pháp tọa độ trong Tableau

Việc sử dụng phương pháp tọa độ (coordinates) trong Tableau có thể được áp dụng ở cực kỳ nhiều hoàn cảnh khác nhau. Mình nghĩ hạn chế duy nhất là ở sự tưởng tượng của bạn mà thôi. Dưới đây là những ứng dụng phổ biến mà bạn có thể tham khảo

Bản đồ của một nước hoặc một khu vực

Việc này thì mình không cần nói nhiều nữa vì các bạn đã thấy trực tiếp như hình ở trên và bài viết hướng dẫn tạo bản đồ Việt Nam bằng hex-map. Nó sẽ giúp chúng ta loại bỏ những trở ngại khi làm việc với những thành phố có diện tích quá nhỏ so với nơi khác.

Vòng tròn so sánh có tính liên kết

Đây là trường hợp mà khi bạn muốn visualise sự liên kết của nhiều danh mục/yếu tố với nhau. Nó khá hữu ích khi bạn có thể nhìn thấy toàn cảnh chỉ trong một hình duy nhất.

Cái vòng tròn quan hệ của các loại Pokemon mình làm chính là dẫn chứng.

Không chỉ hạn chế ở vòng tròn, nếu các bạn có thể kết hợp với sự liên kết của các điểm (route/line map), các bạn có thể tạo nên tất cả những gì mà bạn muốn. Xem ví dụ phía dưới.

Radar Chart hoặc Spider Chart

Radar Chart - Spider chart trong tableau
Tạo Radar chart trong tableau – Nguồn ảnh: thedataschool

Nếu các bạn từng là game thủ thì chắc không còn lạ gì với Radar Chart. Nó là một công cụ khá mạnh trong việc thể hiện nhiều tiêu chí khác nhau trong một bức hình. Nhưng có điểm cần lưu ý là các tiêu chí này cần phải có cùng một thang điểm đánh giá.

Nguyên tắc sử dụng cái này cũng khá đơn giản.

Chúng ta chọn các tọa độ sao cho chúng nằm trên cùng một đường tròn để có khoảng cách đến trung tâm là bằng nhau. Khoảng cách từ các điểm này đến trung tâm chính là 100% số điểm. Chúng ta chỉ cần điều chỉnh chiều dài dựa trên giá trị của mỗi tiêu chí. Điểm càng thấp thì khoảng cách đến trung tâm càng gần và ngược lại.

Các bạn có thể theo dõi bài hướng dẫn tại bài viết này (tiếng Anh).

Art và Everything else

Không chỉ dừng lại ở phân tích dữ liệu, bạn có thể sử dụng tọa độ kết hợp với liên kết giữa các điểm để tạo nên những bức tranh đầy nghệ thuật. Như mình nói ban đầu, ứng dụng của nó chỉ bị giới hạn bởi trí tưởng tượng của chính bạn mà thôi.

Dưới đây là một vài bức tranh được vẽ trên chính Tableau. Các bạn cùng thưởng thức

Hình học Fractal bằng Tableau

 

Dưới đây là bức tranh về Kraken được vẻ bằng các hình tròn trên Tableau. Tác giả của bức tranh này là Andy Cotgreave. Các bạn có thể xem dashboard trên Tableau Public tại link này. Vì khung hình quá bự nên mình không gắn trực tiếp lên đây được.

The Kraken - Tableau art
The Kraken – Tableau art

Challenges – Thử thách cho bạn

Hy vọng đọc đến đây các bạn có thể hiểu và biết được cách tạo ra những mô hình dựa trên tọa độ của Tableau. Bây giờ đến lúc các bạn thực hành. Mình có vài câu hỏi đơn giản sau cho các bạn thực hành. Các bạn cùng nhau thực hiện và chia sẻ lên đây để học hỏi lẫn nhau nhé.

  • Ứng dụng phương pháp mình hướng dẫn trong bài trước để tạo bản đồ cho thành phố HCM. Mình đã tạo file mẫu sẵn cho bạn ở trên rồi. (Level dễ)
  • Bạn hãy tự tạo bản đồ các quận của Hà Nội (Level dễ)
  • Hãy tạo ra một vòng tròn gồm 7 hoặc 8 tọa độ khác nhau (level dễ)
  • Nghiên cứu và tạo ra một biểu đồ Radar Chart (Level trung bình)

Chúc các bạn vui vẻ. Bạn nào chưa hiểu vấn đề gì thì comment bên dưới nhé.

Nếu thấy hữu ích thì đừng quên chia sẻ.

Bài viết được viết bởi Data-fun.com


Chia sẻ ngay tại đây!
  • 1
  •  
  •  
  •  
  •  
    1
    Share
  • 1
    Share

Leave a Reply

Your email address will not be published. Required fields are marked *