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.pyvàmatplotlib/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.