Manakah cara yang disarankan untuk membuat plot: matplotlib atau pylab? [Tutup]

88

Saya melihat bahwa saya dapat memplot dengan Python menggunakan:

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

Atau:

import pylab
pylab.plot(...)

Keduanya menggunakan kode plot matplotlib yang sama .

Jadi, manakah dari berikut ini yang saat ini direkomendasikan oleh para pengembang / dokumen Matplotlib sebagai metode plot yang lebih baik? Mengapa?

Ashwin Nanjappa
sumber
1
kemungkinan duplikat dari Apa perbedaan antara pylab dan pyplot?
tacaswell
9
Duplikasi referensi sendiri?
Fisikawan Gila
4
Ini tidak boleh ditutup karena berdasarkan opini. Sekarang ada jawaban yang jelas dari dokumen Matplotlib: Selalu gunakanmatplotlib.pyplot
Bernhard

Jawaban:

104

Dokumen resmi: Matplotlib, pyplot dan pylab: apa hubungannya?

Kedua impor tersebut bermuara pada melakukan hal yang persis sama dan akan menjalankan kode yang sama persis, itu hanya cara yang berbeda untuk mengimpor modul.

Perhatikan juga bahwa matplotlibmemiliki dua lapisan antarmuka, lapisan mesin-negara yang dikelola oleh pyplotdan antarmuka OO pyplotdibangun di atasnya, lihat Bagaimana cara melampirkan fungsi pyplot ke instance gambar?

pylabadalah cara bersih untuk mengimpor secara massal seluruh fungsi yang berguna ( pyplotsebagian besar fungsi mesin negara numpy) ke dalam satu ruang nama. Alasan utama ini ada (menurut pemahaman saya) adalah untuk bekerja dengan ipythonmembuat shell interaktif yang sangat bagus yang kurang lebih mereplikasi MATLAB (untuk membuat transisi lebih mudah dan karena bagus untuk bermain-main). Lihat pylab.pydanmatplotlib/pylab.py

Pada tingkat tertentu, ini murni masalah selera dan sedikit bergantung pada apa yang Anda lakukan.

Jika Anda tidak menyematkan di gui (baik menggunakan backend non-interaktif untuk skrip massal atau menggunakan salah satu backend interaktif yang disediakan), hal yang biasa dilakukan adalah

import matplotlib.pyplot as plt
import numpy as np

plt.plot(....)

yang tidak mencemari ruang nama. Saya lebih suka ini sehingga saya dapat melacak dari mana barang itu berasal.

Jika Anda menggunakan

ipython --pylab

ini sama dengan berlari

from pylab import * 

Sekarang disarankan untuk versi baru ipythonAnda gunakan

ipython --matplotlib

yang akan mengatur semua detail latar belakang yang tepat untuk membuat backend interaktif berfungsi dengan baik, tetapi tidak akan mengimpor apa pun secara massal. Anda perlu mengimpor modul yang diinginkan secara eksplisit.

import numpy as np
import matplotlib.pyplot as plt

adalah awal yang baik.

Jika Anda menyematkan matplotlibdi gui, Anda tidak ingin mengimpor pyplot karena hal itu akan memulai loop utama gui tambahan, dan apa yang harus Anda impor bergantung pada apa yang Anda lakukan.

tacaswell.dll
sumber
20
Perbedaan antara pylab dan pyplot adalah bahwa pyplot mengimpor numpy ke dalam namespace-nya. Ini untuk membuatnya berperilaku lebih mirip dengan matlab. Sekarang lebih disukai menggunakan pyplot daripada pylab karena lebih bersih.
Christian Alis
8

Dokumentasi di https://matplotlib.org/faq/usage_faq.html#matplotlib-pyplot-and-pylab-how-are-they-related , yang juga menjelaskan perbedaan antara pyglot dan pylab, menyatakan: "Meskipun banyak contoh menggunakan pylab, tidak lagi direkomendasikan. " . Jadi, saya tidak melihat alasan untuk menggunakan pylab atau khawatir tentang itu.

Apostolos
sumber
1
Ini harus menjadi jawaban yang diterima. Dokumentasi "resmi" adalah mata air tersebut, dan dikatakan pylab tidak lagi direkomendasikan.
dturvene