2013-05-31 24 views
60

tôi thấy rằng tôi có thể cốt truyện trong Python sử dụng một trong hai:Cách nào được đề xuất để vẽ: matplotlib hoặc pylab?

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

Hoặc:

import pylab 
pylab.plot(...) 

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

Vì vậy, cộng đồng Python nào đề xuất phương pháp tốt hơn để vẽ đồ thị? Tại sao?

+1

có thể trùng lặp của [Sự khác nhau giữa pylab và pyplot là gì?] (Http://stackoverflow.com/questions/11469336/what-is-the-difference-between-pylab-and-pyplot) – tacaswell

+8

Tự sao chép tham chiếu ? –

Trả lời

85

tài liệu chính thức: Matplotlib, pyplot and pylab: how are they related?

Cả hai của những người nhập khẩu đun sôi xuống làm làm chính xác những điều tương tự và sẽ chạy mã chính xác cùng, nó chỉ là cách khác nhau để nhập khẩu các mô-đun.

Cũng lưu ý rằng matplotlib có hai lớp giao diện, một lớp nhà máy bởi pyplot quản lý và giao diện OO pyplot được xây dựng trên đỉnh, xem How can I attach a pyplot function to a figure instance?

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

Một mức độ nào đó, đây là hoàn toàn là hương vị và phụ thuộc vào những gì bạn đang làm.

Nếu bạn là không nhúng trong một gui (hoặc sử dụng một backend không tương tác cho các kịch bản với số lượng lớn hoặc sử dụng một trong những backends tương tác cung cấp) điều điển hình làm là

import matplotlib.pyplot as plt 
import numpy as np 

plt.plot(....) 

đó doesn' t gây ô nhiễm không gian tên. Tôi thích điều này vì vậy tôi có thể theo dõi những thứ đến từ đâu.

Nếu bạn sử dụng

ipython --pylab 

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

from pylab import * 

Nó bây giờ được khuyến cáo rằng phiên bản mới của ipython bạn sử dụng

ipython --matplotlib 

đó sẽ thiết lập tất cả các chi tiết nền phù hợp để làm cho các phụ trợ tương tác hoạt động độc đáo, bu t sẽ không nhập số lượng lớn. Bạn sẽ cần phải nhập khẩu một cách 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 matplotlib vào gui, bạn không muốn nhập khẩu pyplot vì sẽ bắt đầu thêm vòng chính 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.

+14

Sự khác biệt giữa pylab và pyplot là việc nhập khẩu trước đây vào trong không gian tên của nó. Điều này là để làm cho nó hoạt động tương tự hơn với MATLAB. Sử dụng pyplot thay vì pylab được ưa thích bởi vì nó sạch hơn. – ianalis

Các vấn đề liên quan