Làm cách nào để bạn chọn các thùng cho biểu đồ trong python?

Khám phá dữ liệu là một bước quan trọng trong mọi dự án khoa học dữ liệu và nó thường bắt đầu bằng việc xem xét phân phối của các biến đơn lẻ. Đây là nơi biểu đồ tỏa sáng

Biểu đồ rất tốt để trực quan hóa việc phân phối các cột, giúp hiểu các khía cạnh quan trọng của dữ liệu. Ví dụ, chỉ cần nhìn vào biểu đồ, chúng ta có thể ngay lập tức xác định các giá trị ngoại lệ hoặc thậm chí lỗi trong dữ liệu của mình [e. g. giá trị âm trong cột chứa tuổi của bệnh nhân]

Khi làm việc với biểu đồ, hầu như chúng ta luôn điều chỉnh độ rộng của ngăn, đây là một tham số quan trọng vì nó xác định số lượng và loại thông tin chúng ta có thể trích xuất từ ​​biểu đồ

Trong bài viết này, tôi sẽ chỉ cho bạn cách bạn có thể nhanh chóng tìm thấy chiều rộng thùng tối ưu của mình bằng cách tạo biểu đồ tương tác mà bạn có thể khởi động lại nhanh chóng bằng cách sử dụng plotly và ipywidget trong Jupyter Notebook hoặc JupyterLab

Ghi chú. Mặc dù tôi hiển thị tính năng sắp xếp lại tương tác bằng sơ đồ, nhưng bạn có thể áp dụng logic mà tôi đang minh họa cho bất kỳ thư viện sơ đồ nào, chẳng hạn như seaborn và matplotlib

Để hình dung, tôi sẽ hiển thị thời gian phát sóng tính bằng phút của hơn 300.000 chuyến bay khởi hành từ NYC vào năm 2013 [dữ liệu của NYCflights13]. Bạn có thể tìm thấy mã đầy đủ cho bài viết này dưới dạng Jupyter Notebook trên GitHub

Biểu đồ với tính năng tạo thùng tương tác

Trong đồ họa này, bạn có thể thấy kết quả cuối cùng. Nếu chúng ta thay đổi chiều rộng thùng thông qua một thanh trượt, đồ thị đồ thị sẽ tự động điều chỉnh

Để thực hiện hành vi này, chúng tôi kết hợp plotly.graph_objs [tạo biểu đồ đồ thị] với một ipywidgets.Floatslider

Đây là mã để tạo biểu đồ có thể rebinnable

Hãy đi qua từng dòng một

Giải thích từng dòng mã

0. chữ ký chức năng

Lưu ý rằng chức năng của chúng tôi có hai đối số. series một con gấu trúc. Sê-ri và initial_bin_width, chỉ định chiều rộng thùng mà chúng tôi muốn có làm mặc định trong biểu đồ của mình. Trong trường hợp của chúng tôi, cửa sổ thời gian phát sóng là 10 phút

1. Tạo hình

Chúng tôi tạo một phiên bản FigureWidget mới. Đối tượng FigureWidget là “đối tượng ma thuật” mới của cốt truyện. Bạn có thể hiển thị nó trong Jupyter Notebook hoặc JupyterLab giống như bất kỳ hình vẽ bình thường nào. Tuy nhiên, phương pháp này có một số ưu điểm

  • FigureWidgets có thể được kết hợp với ipywidgets để tạo ra các cấu trúc mạnh mẽ hơn [thực tế, đó là những gì mà FigureWidgets được thiết kế cho]
  • bạn có thể thao tác với FigureWidget theo nhiều cách khác nhau từ Python
  • bạn cũng có thể lắng nghe một số sự kiện và
  • khi một sự kiện được kích hoạt, bạn có thể thực thi nhiều mã Python hơn

FigureWidget nhận thuộc tính data, chỉ định danh sách tất cả các dấu vết [đọc. hình ảnh hóa] mà chúng tôi muốn hiển thị. Trong trường hợp của chúng tôi, chúng tôi chỉ muốn hiển thị một biểu đồ duy nhất. Các giá trị x cho biểu đồ đến từ series. Chúng tôi đặt chiều rộng thùng bằng cách chuyển một từ điển tới ipywidgets.Floatslider0. Khi chúng tôi đặt ipywidgets.Floatslider1 trong từ điển, cốt truyện sẽ chọn chiều rộng ngăn cho chúng tôi

2. Tạo thanh trượt

Chúng tôi tạo một ipywidgets.Floatslider2 bằng thư viện ipywidgets.Floatslider3. Thông qua thanh trượt này, sau này chúng ta sẽ có thể điều khiển biểu đồ của mình

3. Lưu một tham chiếu đến biểu đồ

Chúng tôi nhận được tham chiếu đến biểu đồ vì chúng tôi muốn thao tác với nó ở bước cuối cùng. Đặc biệt, chúng tôi sẽ thay đổi thuộc tính ipywidgets.Floatslider0 của đối tượng mà chúng tôi có thể truy cập thông qua ipywidgets.Floatslider5

4. Viết và sử dụng gọi lại

ipywidgets.Floatslider2 chúng tôi đã triển khai đi kèm với một số phép thuật. Mỗi khi giá trị của nó thay đổi [i. e. chúng tôi di chuyển thanh trượt], nó kích hoạt một sự kiện. Chúng tôi có thể sử dụng sự kiện đó để cập nhật độ rộng thùng trong biểu đồ của mình. Về mặt kỹ thuật, bạn làm điều đó bằng cách gọi phương thức ipywidgets.Floatslider7 trên thanh trượt bin, chuyển cho nó chức năng bạn muốn gọi [ ipywidgets.Floatslider8 trong trường hợp của chúng tôi] và cho nó biết khi nào cần gọi hàm [ ipywidgets.Floatslider9 có nghĩa là chúng tôi gọi hàm bất cứ khi nào series0 của hàm . Bây giờ, bất cứ khi nào giá trị của thanh trượt thay đổi, nó sẽ gọi ipywidgets.Floatslider8. ipywidgets.Floatslider8 có quyền truy cập vào giá trị của thanh trượt thông qua đối số ma thuật series3 — một từ điển chứa dữ liệu về sự kiện được kích hoạt bởi series4. Ví dụ: series5 chứa giá trị mới của thanh trượt, nhưng bạn cũng có thể truy cập giá trị trước đó của nó bằng series6. Lưu ý rằng bạn không phải sử dụng tên đối số series3. Bạn có thể đặt cho nó bất kỳ tên nào bạn muốn

Bên trong hàm gọi lại ipywidgets.Floatslider8, chúng ta có thể thấy rằng nó chỉ cần lấy tham chiếu series9 để cập nhật cài đặt ngăn của FigureWidget [i. e. thay đổi độ rộng của thùng] bằng cách ghi đè lên ipywidgets.Floatslider0

Khi chúng tôi ghép tất cả các phần ở trên lại với nhau, chúng tôi có nguyên mẫu đầu tiên cho một biểu đồ tương tác đẹp mắt

Phần kết luận

Biểu đồ là một cách tuyệt vời để bắt đầu khám phá các cột đơn lẻ của tập dữ liệu. Với cốt truyện, chúng tôi có thể tạo các hình ảnh trực quan tương tác mạnh mẽ có thể được nâng cao hơn nữa với ipywidget

Trong bài viết này, tôi đã chỉ cho bạn cách bạn có thể tương tác và nhanh chóng tìm chiều rộng thùng tối ưu [chủ quan] cho biểu đồ khi làm việc trong Jupyter Notebook hoặc JupyterLab bằng cách sử dụng plotly và ipywidget

Tại 8080 Labs, chúng tôi sử dụng tính năng rebinning trong công cụ python của chúng tôi bamboolib. Cùng với nhiều tính năng tương tác khác, nó giúp người dùng của chúng tôi hiểu rõ hơn nhanh hơn

Nếu bạn có bất kỳ phản hồi hoặc phê bình mang tính xây dựng nào về bài viết này hoặc muốn thảo luận về các cách để thêm nhiều chức năng hơn vào biểu đồ, vui lòng liên hệ với tôi qua LinkedIn

Các thùng trong biểu đồ Python là gì?

Các tháp hoặc thanh của biểu đồ được gọi là thùng. Chiều cao của mỗi ngăn cho biết có bao nhiêu giá trị từ dữ liệu đó nằm trong phạm vi đó. Giá trị mặc định của số thùng được tạo trong biểu đồ là 10. Tuy nhiên, chúng ta có thể thay đổi kích thước của các thùng bằng tham số bin trong matplotlib.

Làm cách nào để sử dụng các thùng trong matplotlib?

Tất cả những gì bạn phải làm là sử dụng plt. hist[] của matplotlib và truyền dữ liệu cùng với số lượng thùng và một vài tham số tùy chọn . trong plt. hist[] , chuyển bins='auto' sẽ cho bạn số lượng thùng “lý tưởng”.

Chủ Đề