Trực quan hóa dữ liệu bằng Python với Seaborn

python trực quan hóa dữ liệu seaborn
Trực quan hóa dữ liệu bằng Python với Seaborn cover image

Ngày nay, tài nguyên quý giá nhất của thế giới không còn là dầu mỏ nữa mà là dữ liệu. Trực quan hóa đang trở thành một công cụ quan trọng hơn để hiểu được hàng tỷ hàng dữ liệu. Bằng cách chuyển dữ liệu sang dạng biểu diễn đồ họa dễ hiểu, trực quan hóa dữ liệu sẽ hỗ trợ việc kể chuyện dữ liệu bằng cách làm nổi bật thông tin, mẫu và các ngoại lệ có liên quan. Tuy nhiên, dữ liệu và đồ họa phải phối hợp với nhau: Đó là nghệ thuật tích hợp những phân tích tuyệt vời với cách kể chuyện tuyệt vời. Trong bài đăng trên blog này, chúng tôi sẽ giới thiệu cho bạn "Sea Born", một trong những công cụ trực quan hóa nổi tiếng nhất được viết bằng Python.

Công cụ trực quan

Chúng tôi sử dụng các công cụ Trực quan hóa để trực quan hóa các xu hướng, mô hình, các ngoại lệ và mối quan hệ giữa các biến. Đó là một kỹ năng được yêu cầu cao, đặc biệt đối với sự nghiệp khoa học dữ liệu.

##Sinh vật biển

Seaborn là thư viện trực quan hóa dữ liệu Python dựa trên matplotlib. Nó cung cấp một giao diện cấp cao để vẽ đồ họa thống kê hấp dẫn và giàu thông tin.

Chức năng vẽ sơ đồ Seaborn:

Ở seaborn, chúng tôi có 3 loại lô

  • Các lô phân loại.

  • Các lô phân bố.

  • Đồ thị quan hệ.


Lô phân loại

Chúng tôi sử dụng các hàm vẽ biểu đồ phân loại của seaborn để trực quan hóa xu hướng của một biến phân loại hoặc để trực quan hóa mối quan hệ giữa hai biến với ít nhất một biến phân loại.

Đếm cốt truyện:

  • Hiển thị số lượng quan sát của từng danh mục từ biến phân loại. Chúng tôi chỉ đơn giản đếm số lượng quan sát của từng loại biến
seaborn.catplot(kind = 'count',
                data = dataset,
                x    = 'variable')

Count plot

Biểu đồ thanh:

  • Biểu thị ước tính xu hướng của một biến liên tục có chiều cao hình chữ nhật cho từng loại của biến phân loại. Vì vậy, hàm vẽ đồ thị lấy hai biến làm đầu vào, một biến liên tục và một biến phân loại. Đối với mỗi danh mục từ biến_1, chúng tôi tính toán xu hướng của biến_2.

  • Xu hướng có thể là giá trị trung bình, phương sai hoặc bạn có thể chuyển một số hàm tùy chỉnh…

seaborn.catplot(kind = 'bar',**data = dataset,**
                x    = 'variable_1',**y    = 'variable_2',**
                estimator = np.mean)**

Bar Plot

Dải âm mưu:

  • Biểu đồ dải là một trong những biểu đồ đơn giản và dễ hiểu nhất trong việc trực quan hóa dữ liệu, chúng ta chỉ cần vẽ các điểm biểu thị giá trị của một biến liên tục. Với mỗi loại Biến 1, chúng ta sẽ vẽ các giá trị của Biến 2.

Strip Plot

seaborn.catplot(kind = 'strip',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                jitter = 0.15)

Âm mưu bầy đàn:

  • Biểu đồ bầy đàn rất giống với biểu đồ dải vì nó có chức năng hoàn toàn giống nhau. Sự khác biệt duy nhất là ở cách nó hiển thị điểm. Trong khi ở dạng biểu đồ dải, các điểm dữ liệu có thể trùng nhau do chúng được đặt ngẫu nhiên trên trục x, thì trong biểu đồ bầy đàn, chúng tôi đảm bảo rằng các điểm sẽ không trùng nhau bằng cách xếp chúng lên nhau.

  • Hạn chế ở đây là nếu chúng ta có nhiều điểm dữ liệu thì không thể không chồng lên nhau nên thuật toán sẽ xóa một số điểm dữ liệu để không bị trùng nhau.

Swarm Plot

seaborn.catplot(kind = 'swarm',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Sơ đồ hộp:

  • Biểu đồ hộp được sử dụng để thể hiện sự phân bố của một biến liên tục cho từng loại biến phân loại. Mặc dù khá đơn giản nhưng nó mang lại rất nhiều thông tin:

  • Các giá trị của tứ phân vị:

Hộp có một đường ngang bên trong, tượng trưng cho dải phân cách. Đường ngang phía trên là tứ phân vị trên, đường ngang bên dưới là tứ phân vị dưới.

  • Các ngoại lệ:

Lưu ý rằng có một số điểm nằm ngoài hộp, những điểm này đại diện cho các giá trị ngoại lệ

Box Plot

seaborn.catplot(kind = 'box',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Cốt truyện violin:

Thay vì vẽ đồ thị hộp phân phối, đồ thị violin sẽ vẽ đồ thị phân phối thực tế của biến liên tục cho từng loại của biến phân loại bằng cách sử dụng KDE (Ước tính mật độ hạt nhân)

Violin Plot

seaborn.catplot(kind = 'violin',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Các lô phân phối:

Chúng tôi sử dụng các hàm vẽ biểu đồ phân phối của seaborn để hình dung sự phân bố của các biến liên tục.

Cốt truyện lịch sử:

Biểu đồ lịch sử thể hiện sự phân bố của các biến liên tục bằng cách sử dụng các thùng.

Hist Plot

seaborn.distplot(kind = 'hist',
                 data = dataset,
                 x    = 'variable',
                 bins = 20)

Cốt truyện KDE:

Biểu đồ Kde thể hiện sự phân bố thực tế của dữ liệu, sử dụng Ước tính mật độ hạt nhân.

KDE Plot

seaborn.distplot(kind = 'kde',
                 data = dataset,
                 x    = 'variable')

Nó cũng có thể được sử dụng để biểu diễn phân phối hai biến của hai biến liên tục.

KDE Plot

seaborn.distplot(kind = 'kde',
                 data = dataset,
                 x    = 'variable_1',
                 y    = 'variable_2')

Biểu đồ ECDF:

Biểu đồ ECDF thể hiện phân bố tích lũy theo kinh nghiệm của một biến liên tục.

ECDF Plot

seaborn.distplot(kind = 'ecdf',
                 data = dataset,
                 x    = 'variable')

Các biểu đồ quan hệ:

Chúng tôi sử dụng các hàm vẽ đồ thị quan hệ của seaborn để hình dung mối quan hệ giữa các biến liên tục.

Biểu đồ phân tán:

  • Nó cho thấy mối quan hệ giữa hai biến liên tục, bằng cách vẽ đồ thị đơn giản tất cả các điểm dữ liệu.

Scatter Plot

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Biểu đồ đường:

  • Biểu diễn mối quan hệ giữa các biến dưới dạng hàm liên tục.

Line Plot

seaborn.relplot(kind = 'line',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Thêm chức năng:

Bạn có thể nhận thấy rằng trong tất cả các hàm vẽ đồ thị, chúng tôi đã sử dụng tối đa hai biến cho mỗi đồ thị, nhưng nếu chúng tôi muốn giới thiệu nhiều biến hơn trong hình ảnh trực quan của mình thì sao? May mắn thay Seaborn đã quan tâm đến điều đó:

Huế:

  • Sử dụng màu sắc, chúng ta có thể giới thiệu biến thứ 3 được phân loại cho trực quan hóa của chúng ta bằng cách sử dụng mã hóa màu, có nghĩa là các điểm dữ liệu thuộc cùng danh mục của biến thứ 3 này sẽ có cùng màu.

Hue

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                hue  = 'variable_3')

Kích cỡ:

  • Kích thước tương tự như màu sắc, nhưng sử dụng mã hóa kích thước thay vì mã hóa màu. Điều đó có nghĩa là các điểm dữ liệu thuộc cùng loại của biến thứ 3 sẽ có cùng kích thước duy nhất. Kích thước khác nhau có nghĩa là các loại khác nhau.

Size

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                size = 'variable_3',
                sizes = [50, 100])

Phong cách:

  • Khá giống với Hue và Size, có nghĩa là các điểm dữ liệu thuộc cùng loại của biến thứ 3 sẽ có cùng một kiểu duy nhất. Kiểu điểm có thể là dấu chấm, ngôi sao, hình chữ thập, hình tam giác,… chúng ta gọi chúng là điểm đánh dấu.

Style

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                style = 'variable_3',
                markers = ['X', '*'])

Chúng ta cũng có thể giới thiệu một biến phân loại mới bằng cách sử dụng các ô bội số, mỗi ô thuộc về một danh mục từ biến phân loại cate:

Col:

Sẽ tạo ra nhiều hình theo chiều ngang tương ứng với các loại của biến thứ 3.

Col

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                col  = 'variable_3')

Hàng ngang:

Sẽ tạo ra nhiều hình theo chiều dọc tương ứng với các danh mục của biến thứ 3.

Row

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                row  = 'variable_3')

Chúng ta cũng có thể sử dụng Hue và Size trong cùng một biểu đồ, để biểu thị 4 biến, hoặc thậm chí Hue và Style và Col, để sử dụng 5 biến trong cùng một biểu đồ ! Chúng ta có thể sử dụng tối đa 7 biến (biến 1, biến 2, Hue, Size, Style, Col, Row) trong cùng một ô, nhưng nó sẽ cho chúng ta một ô có tính phí rất lộn xộn và cực kỳ khó diễn giải, đôi khi không thông tin gì cả.

Hue & Size

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                hue  = 'variable_3',
                size = 'variable_4')

Phần kết luận:

Trong bài đăng này, chúng ta đã tìm hiểu về seaborn, 3 loại chức năng vẽ đồ thị của nó: Đồ thị phân loại, phân phối và quan hệ, đồng thời chúng tôi đã giải thích từng chức năng vẽ đồ thị cho từng danh mục, tất cả cùng với mã python.

Hãy xem Chương trình đào tạo khoa học dữ liệu của chúng tôi để tìm hiểu thêm về chủ đề này!


Career Services background pattern

Dịch vụ nghề nghiệp

Contact Section background image

Hãy giữ liên lạc

Code Labs Academy © 2024 Đã đăng ký Bản quyền.