Cách nào được đề xuất để lập âm mưu: matplotlib hay pylab? [đóng cửa]


88

Tôi thấy rằng tôi có thể vẽ biểu đồ bằng Python bằng cách sử dụng:

import matplotlib
matplotlib.pyplot.plot(...)

Hoặc là:

import pylab
pylab.plot(...)

Cả hai đều sử dụng cùng một mã âm mưu matplotlib .

Vì vậy, các nhà phát triển / tài liệu Matplotlib hiện đang khuyên dùng phương pháp nào tốt hơn để lập kế hoạch? Tại sao?



9
Nhân đôi tự tham chiếu?
Mad Physicist,

4
Điều này không nên được đóng lại như là dựa trên ý kiến. Bây giờ có một câu trả lời rõ ràng từ các tài liệu Matplotlib: Luôn luôn sử dụngmatplotlib.pyplot
Bernhard

Câu trả lời:


104

Tài liệu chính thức: Matplotlib, pyplot và pylab: chúng liên quan như thế nào?

Cả hai cách nhập đó đều thực hiện chính xác cùng một việc và sẽ chạy cùng một mã chính xác, đó chỉ là các cách nhập mô-đun khác nhau.

Cũng xin lưu ý rằng matplotlibcó hai lớp giao diện, một lớp máy trạng thái được quản lý pyplotvà giao diện OO pyplotđược xây dựng ở trên cùng, hãy xem Làm cách nào để tôi có thể đính kèm một hàm pyplot vào một thể hiện hình?

pylablà một cách dễ dàng để nhập hàng loạt toàn bộ các chức năng hữu ích ( pyplothầu hết là chức năng máy trạng thái numpy) vào một không gian tên duy nhất. Lý do chính mà điều này tồn tại (theo sự hiểu biết của tôi) là làm việc ipythonđể tạo ra một trình bao tương tác rất đẹp, ít nhiều sẽ sao chép MATLAB (để làm cho quá trình chuyển đổi dễ dàng hơn và vì nó rất tốt để chơi xung quanh). Xem pylab.pymatplotlib/pylab.py

Ở một mức độ nào đó, đây hoàn toàn là vấn đề của sở thích và phụ thuộc một chút vào những gì bạn đang làm.

Nếu bạn không nhúng vào một gui (sử dụng chương trình phụ trợ không tương tác cho các tập lệnh hàng loạt hoặc sử dụng một trong các phần mềm phụ trợ tương tác được cung cấp) thì điều điển hình cần làm là

import matplotlib.pyplot as plt
import numpy as np

plt.plot(....)

mà không làm ô nhiễm không gian tên. Tôi thích điều này hơn để tôi có thể theo dõi những thứ đến từ đâu.

Nếu bạn dùng

ipython --pylab

điều này tương đương với chạy

from pylab import * 

Bây giờ chúng tôi khuyến nghị rằng đối với các phiên bản mới của ipythonbạn sử dụng

ipython --matplotlib

điều này sẽ thiết lập tất cả các chi tiết nền thích hợp để làm cho các phụ trợ tương tác hoạt động tốt, nhưng sẽ không nhập hàng loạt bất cứ thứ gì. Bạn sẽ cần phải nhập rõ ràng các mô-đun muốn.

import numpy as np
import matplotlib.pyplot as plt

là một khởi đầu tốt.

Nếu bạn đang nhúng matplotlibvào một gui, bạn không muốn nhập pyplot vì điều đó sẽ bắt đầu thêm các vòng lặp chính của gui và chính xác những gì bạn nên nhập phụ thuộc vào chính xác những gì bạn đang làm.


19
Sự khác biệt giữa pylab và pyplot là cái trước đây nhập numpy vào không gian tên của nó. Điều này làm cho nó hoạt động tương tự hơn với matlab. Sử dụng pyplot thay vì pylab hiện được ưa chuộng hơn vì nó sạch hơn.
Christian Alis

8

Tài liệu tại https://matplotlib.org/faq/usage_faq.html#matplotlib-pyplot-and-pylab-how-are-they-osystem , cũng mô tả sự khác biệt giữa pyglot và pylab, nêu rõ: "Mặc dù nhiều ví dụ sử dụng pylab, nó không còn được khuyến khích nữa. " . Vì vậy, tôi không thấy có lý do gì để sử dụng pylab hoặc lo lắng về nó.


1
Đây phải là câu trả lời được chấp nhận. Tài liệu "chính thức" là con cháu và nó nói rằng pylab không còn được khuyến khích nữa.
dturvene
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.