Tìm hiểu cách matplotlib inline cho phép bạn hiển thị trực tiếp các biểu đồ dữ liệu ngay trong notebook một cách nhanh chóng và dễ dàng! Bài viết này sẽ đề cập matplotlib inline là gì, cách sử dụng, và cách kết hợp với các thư viện khác để tạo ra các trực quan hóa mạnh mẽ.
Matplotlib là một thư viện mạnh mẽ để tạo trực quan hóa trong Python. Khi sử dụng Jupyter Notebooks, DataLab hoặc các môi trường tương thích khác, bạn có thể dùng Matplotlib inline để hiển thị các biểu đồ Matplotlib trực tiếp trong notebook mà không cần cửa sổ bổ sung. Để tìm hiểu thêm về các khả năng của Matplotlib, hãy xem hướng dẫn này về cách sử dụng thư viện Matplotlib.
Matplotlib Inline làm gì?
Matplotlib inline là một lệnh backend trong Jupyter Notebooks cho phép kết xuất các biểu đồ Matplotlib ngay bên dưới các ô mã. Điều này có nghĩa là khi bạn chạy mã tạo biểu đồ Matplotlib, các biểu đồ sẽ hiển thị inline trong notebook thay vì ở một cửa sổ riêng hoặc ô kết quả khác.
Cách kết xuất inline này rất hữu ích khi bạn lặp qua các phiên bản của một biểu đồ trong notebook. Vì biểu đồ xuất hiện ngay bên dưới đoạn mã tạo ra nó, bạn dễ dàng thấy các thay đổi trong mã ảnh hưởng đến kết quả như thế nào. Bạn có thể dùng cách này khi áp dụng các tính năng biểu đồ tiêu chuẩn như tiêu đề, nhãn trục, chú giải (legend) hoặc mã màu.
Lưu ý, trong một số trường hợp, bạn có thể gặp vấn đề rò rỉ bộ nhớ, tức lỗi khi bộ nhớ không được giải phóng giữa các lần vẽ, khiến hình bị vẽ sai sau khi thay đổi. Nếu gặp vấn đề này, hãy thử dùng các phương thức .clf() và .close() để xóa bộ nhớ từ biểu đồ trước khi vẽ lại.
Lưu ý quan trọng: Ở các phiên bản hiện tại của Jupyter Notebook, việc dùng Matplotlib inline không còn bắt buộc vì biểu đồ sẽ tự động hiển thị. Tuy vậy, nó vẫn hữu ích, đặc biệt khi bạn chia sẻ mã. Vì thế, nếu bạn dùng phiên bản Jupyter Notebook mới nhất hoặc đang dùng DataLab và không có nhu cầu chia sẻ mã, bạn có thể bỏ qua hướng dẫn này và bắt đầu học Matplotlib.
Cú pháp và cách dùng Matplotlib inline kèm ví dụ
Để bật chế độ Matplotlib inline trong một Jupyter notebook, chỉ cần thêm lệnh sau ở đầu notebook:
Lệnh này báo cho Jupyter kết xuất các biểu đồ Matplotlib trực tiếp trong notebook, thay vì mở một cửa sổ mới hoặc cần lưu biểu đồ ra ngoài. Sau khi bật, bạn có thể tiếp tục tạo và hiển thị các biểu đồ bằng Matplotlib như bình thường.
Ví dụ về %matplotlib inline hoạt động trong Jupyter Notebook
Như đã đề cập, các phiên bản mới của Jupyter Notebooks và các IDE như DataLab không yêu cầu thêm %matplotlib inline để xem biểu đồ trong cùng một ô. Tuy nhiên, tôi vẫn thích thêm dòng lệnh này ở đầu tập lệnh ngay cả khi dùng các IDE như vậy. Nó giúp việc chuyển mã giữa các hệ thống và thành viên nhóm dễ dàng hơn. Nó cũng giảm khả năng gặp lỗi bất ngờ nếu IDE không hoạt động như mong đợi.
Một lựa chọn tương tác: %matplotlib notebook
Nếu bạn muốn có tính tương tác trong các biểu đồ inline, hãy thử lệnh backend %matplotlib notebook. Lệnh này vẫn hiển thị biểu đồ trong notebook, đồng thời bổ sung một số tương tác như phóng to, kéo thả và kiểm tra dữ liệu. Tuy nhiên, tôi nhận thấy lệnh này có thể thất thường trên một số hệ thống. Nếu bạn gặp rắc rối với magic command này, tôi khuyên dùng plotly.io để có các biểu đồ tương tác, hiển thị inline.
Ví dụ về %matplotlib notebook hoạt động trong Jupyter Notebook
Kết hợp %matplotlib inline với các thư viện vẽ khác
Lệnh %matplotlib inline không chỉ giới hạn cho các biểu đồ matplotlib. Nó tích hợp dễ dàng với các thư viện vẽ khác như seaborn và plotly, mở rộng phạm vi các loại biểu đồ bạn có thể tạo inline trong notebook.
Dùng lệnh này cùng thư viện seaborn giúp mở rộng các tùy chọn tùy chỉnh cho biểu đồ.
Ví dụ về %matplotlib inline với seaborn hoạt động trong Jupyter Notebook
Dùng lệnh này cùng thư viện plotly cho phép tính tương tác như phóng to và kéo thả.
Ví dụ về %matplotlib inline với plotly hoạt động trong Jupyter Notebook
Điểm chính: Dùng lệnh %matplotlib inline để kích hoạt vẽ inline trong Jupyter notebooks. Kết hợp lệnh này với các thư viện vẽ khác để tạo các trực quan hóa mạnh mẽ.
Thực hành tốt nhất khi dùng %matplotlib inline
Khi sử dụng %matplotlib inline, có một vài thực hành tốt nên cân nhắc:
Thêm lệnh matplotlib inline ở đầu notebook để đảm bảo hiển thị biểu đồ nhất quán trong suốt notebook.
Đảm bảo nhập thư viện matplotlib trước khi gọi lệnh.
Nếu bạn muốn xem biểu đồ ngay trong notebook, hãy nhớ dùng matplotlib inline, ngay cả khi IDE của bạn mặc định có hành vi này. Điều đó sẽ đảm bảo hoạt động trơn tru, đặc biệt khi mã của bạn được đồng nghiệp sử dụng.
Hãy xóa các biểu đồ cũ trước khi tạo lại biểu đồ mới để tránh rò rỉ bộ nhớ.
Đảm bảo loại biểu đồ bạn dùng phù hợp với dữ liệu và kết luận bạn muốn thể hiện.
Kết luận
Chế độ Matplotlib inline là một tính năng tiện lợi giúp tăng tính hữu dụng của Matplotlib trong Jupyter notebooks. Bằng cách bật kết xuất inline cho các biểu đồ, nó giúp đơn giản hóa quy trình tạo, khám phá và truyền đạt thông tin chi tiết từ dữ liệu.
Tôi là Tiến sĩ với 13 năm kinh nghiệm làm việc với dữ liệu trong môi trường nghiên cứu sinh học. Tôi phát triển phần mềm bằng nhiều ngôn ngữ lập trình, bao gồm Python, MATLAB và R. Tôi đam mê chia sẻ tình yêu học hỏi của mình với mọi người.
Matplotlib là một thư viện mạnh mẽ để tạo trực quan hóa trong Python. Khi sử dụng Jupyter Notebooks, DataLab hoặc các môi trường tương thích khác, bạn có thể dùng Matplotlib inline để hiển thị các biểu đồ Matplotlib trực tiếp trong notebook mà không cần cửa sổ bổ sung. Để tìm hiểu thêm về các khả năng của Matplotlib, hãy xem hướng dẫn này về cách sử dụng thư viện Matplotlib.
Matplotlib Inline làm gì?
Matplotlib inline là một lệnh backend trong Jupyter Notebooks cho phép kết xuất các biểu đồ Matplotlib ngay bên dưới các ô mã. Điều này có nghĩa là khi bạn chạy mã tạo biểu đồ Matplotlib, các biểu đồ sẽ hiển thị inline trong notebook thay vì ở một cửa sổ riêng hoặc ô kết quả khác.
Cách kết xuất inline này rất hữu ích khi bạn lặp qua các phiên bản của một biểu đồ trong notebook. Vì biểu đồ xuất hiện ngay bên dưới đoạn mã tạo ra nó, bạn dễ dàng thấy các thay đổi trong mã ảnh hưởng đến kết quả như thế nào. Bạn có thể dùng cách này khi áp dụng các tính năng biểu đồ tiêu chuẩn như tiêu đề, nhãn trục, chú giải (legend) hoặc mã màu.
Lưu ý, trong một số trường hợp, bạn có thể gặp vấn đề rò rỉ bộ nhớ, tức lỗi khi bộ nhớ không được giải phóng giữa các lần vẽ, khiến hình bị vẽ sai sau khi thay đổi. Nếu gặp vấn đề này, hãy thử dùng các phương thức
.clf()và.close()để xóa bộ nhớ từ biểu đồ trước khi vẽ lại.Lưu ý quan trọng: Ở các phiên bản hiện tại của Jupyter Notebook, việc dùng Matplotlib inline không còn bắt buộc vì biểu đồ sẽ tự động hiển thị. Tuy vậy, nó vẫn hữu ích, đặc biệt khi bạn chia sẻ mã. Vì thế, nếu bạn dùng phiên bản Jupyter Notebook mới nhất hoặc đang dùng DataLab và không có nhu cầu chia sẻ mã, bạn có thể bỏ qua hướng dẫn này và bắt đầu học Matplotlib.
Cú pháp và cách dùng Matplotlib inline kèm ví dụ
Để bật chế độ Matplotlib inline trong một Jupyter notebook, chỉ cần thêm lệnh sau ở đầu notebook:
Lệnh này báo cho Jupyter kết xuất các biểu đồ Matplotlib trực tiếp trong notebook, thay vì mở một cửa sổ mới hoặc cần lưu biểu đồ ra ngoài. Sau khi bật, bạn có thể tiếp tục tạo và hiển thị các biểu đồ bằng Matplotlib như bình thường.
Ví dụ về
%matplotlibinline hoạt động trong Jupyter NotebookNhư đã đề cập, các phiên bản mới của Jupyter Notebooks và các IDE như DataLab không yêu cầu thêm
%matplotlibinline để xem biểu đồ trong cùng một ô. Tuy nhiên, tôi vẫn thích thêm dòng lệnh này ở đầu tập lệnh ngay cả khi dùng các IDE như vậy. Nó giúp việc chuyển mã giữa các hệ thống và thành viên nhóm dễ dàng hơn. Nó cũng giảm khả năng gặp lỗi bất ngờ nếu IDE không hoạt động như mong đợi.Một lựa chọn tương tác:
%matplotlib notebookNếu bạn muốn có tính tương tác trong các biểu đồ inline, hãy thử lệnh backend
%matplotlibnotebook. Lệnh này vẫn hiển thị biểu đồ trong notebook, đồng thời bổ sung một số tương tác như phóng to, kéo thả và kiểm tra dữ liệu. Tuy nhiên, tôi nhận thấy lệnh này có thể thất thường trên một số hệ thống. Nếu bạn gặp rắc rối với magic command này, tôi khuyên dùng plotly.io để có các biểu đồ tương tác, hiển thị inline.Ví dụ về
%matplotlib notebookhoạt động trong Jupyter NotebookKết hợp
%matplotlib inlinevới các thư viện vẽ khácLệnh
%matplotlib inlinekhông chỉ giới hạn cho các biểu đồ matplotlib. Nó tích hợp dễ dàng với các thư viện vẽ khác như seaborn và plotly, mở rộng phạm vi các loại biểu đồ bạn có thể tạo inline trong notebook.Dùng lệnh này cùng thư viện seaborn giúp mở rộng các tùy chọn tùy chỉnh cho biểu đồ.
Ví dụ về
%matplotlibinline với seaborn hoạt động trong Jupyter NotebookDùng lệnh này cùng thư viện plotly cho phép tính tương tác như phóng to và kéo thả.
Ví dụ về
%matplotlib inlinevới plotly hoạt động trong Jupyter NotebookĐiểm chính: Dùng lệnh
%matplotlib inlineđể kích hoạt vẽ inline trong Jupyter notebooks. Kết hợp lệnh này với các thư viện vẽ khác để tạo các trực quan hóa mạnh mẽ.Thực hành tốt nhất khi dùng
%matplotlibinlineKhi sử dụng
%matplotlib inline, có một vài thực hành tốt nên cân nhắc:Kết luận
Chế độ Matplotlib inline là một tính năng tiện lợi giúp tăng tính hữu dụng của Matplotlib trong Jupyter notebooks. Bằng cách bật kết xuất inline cho các biểu đồ, nó giúp đơn giản hóa quy trình tạo, khám phá và truyền đạt thông tin chi tiết từ dữ liệu.
Để tìm hiểu thêm về trực quan hóa dữ liệu, hãy xem Introduction to Data Visualizations with Matplotlib. Hãy thử xây dựng các biểu đồ và trực quan hóa nâng cao trong khóa học Seaborn này và hướng dẫn về biểu đồ histogram trong Matplotlib.