“% Matplotlib satır içi” nin amacı


482

Birisi bana tam olarak ne kullanıldığını açıklayabilir %matplotlib inlinemi?


22
Figürü bir not defterinde işleyen sihirli bir işlevdir (şekil nesnesinin bir dökümünü görüntülemek yerine). Basit bir Matplotlib öğreticisi burada data-blogger.com/2017/11/15/… .
www.data-blogger.com

6
Kullanılabilir arka uçları kontrol edebilirsiniz (gibi inlineŞunu girerek): %matplotlib --list.
Luis

Yanıtlar:


285

%matplotlibBir olan sihirli işlevi ipython içinde. Size kolaylık sağlamak için burada ilgili belgeleri sunacağım:

IPython, komut satırı stili sözdizimi ile çağırabileceğiniz, önceden tanımlanmış bir dizi 'sihirli işlev' içerir. Çizgi ve hücre odaklı olmak üzere iki tür sihir vardır. Çizgi büyülerine% karakteri eklenir ve OS komut satırı çağrılarına çok benzer: bağımsız değişken olarak satırın geri kalanını alırlar; burada bağımsız değişkenler parantez veya tırnak işaretleri olmadan iletilir. Satır büyüleri sonuçları döndürebilir ve bir ödevin sağ tarafında kullanılabilir. Hücre büyülerinin önüne %% double eklenir ve yalnızca satırın geri kalanını değil, aynı zamanda altındaki satırları da bağımsız bir bağımsız değişken olarak alan işlevlerdir.

%matplotlib inline matplotlib arka ucunu 'satır içi' arka ucuna ayarlar :

Bu arka uçla, çizim komutlarının çıktısı, Jupyter dizüstü bilgisayar gibi ön uçlarda, onu üreten kod hücresinin hemen altında satır içi olarak görüntülenir. Sonuçta ortaya çıkan grafikler de defter belgesinde saklanır.

'Satır içi' arka ucu kullanırken, matplotlib grafikleriniz kodunuzun yanında not defterinize dahil edilecektir. Ayrıca, kodunuzda nasıl kullanılacağına ilişkin referans için IPython dizüstü matplotlib çizimini satır içinde nasıl yapacağınız da okunabilir .

Siz de etkileşim istiyorsanız, kullanabileceğiniz nbagg arka uç ile %matplotlib notebooktarif edildiği gibi, (ipython 3.x) burada .


4
% matplotlib satır içi ^ Sözdizimi

4
@Jadda IPython mu kullanıyorsunuz? Değilse, geçerli bir CPython (Python için 'standart' yorumlayıcı) olmadığı için bir sözdizimi hatası alırsınız. IPython Dizüstü Bilgisayar kullanmıyorsanız, bunu kullanmanın pek bir anlamı yoktur, çünkü bütün mesele arazileri bir dizüstü bilgisayarla satır içinde oluşturmaktır.
Aurora0001

Evet. Bu Tensorflow Nesne algılama API uygulamak için Spyder IDE (Anaconda'nın bir parçası) kullanıyorum

3
Bu durumda, @Jadda, yeni bir sorunuz olacak gibi görünüyor . Sorunuza, bu cevabın yorumlarından daha fazla dikkat çekebilmek için tüm ilgili ayrıntıları oraya eklemelisiniz. İyi şanslar.
Aurora0001

2
tamam, ama alternatif nedir: böyle bir sihir etkinleştirilmemişse arazileri nasıl görebilirim?
JaakL

77

IPython çalıştırmanız şartıyla %matplotlib inline, çizim çıktılarınızın görünmesini ve not defterinde saklanmasını sağlar.

Belgelere göre

Bunu ayarlamak için, herhangi bir çizim veya içe aktarma matplotlibgerçekleştirilmeden önce %matplotlib magic command. Bu, IPython'un el ile doğru çalışması için gerekli sahne arkası kurulumunu gerçekleştirir matplotlib; bununla birlikte, aslında herhangi bir Python içe aktarma komutu yürütmez, yani ad alanına hiçbir isim eklenmez.

IPython tarafından sağlanan özellikle ilginç bir arka uç, arka uçtur inline. Bu yalnızca Jupyter Notebook ve Jupyter QtConsole için kullanılabilir. Aşağıdaki gibi çağrılabilir:

%matplotlib inline

Bu arka uçla, çizim komutlarının çıktısı, Jupyter dizüstü bilgisayar gibi ön uçlarda, onu üreten kod hücresinin hemen altında satır içi olarak görüntülenir. Sonuçta ortaya çıkan grafikler de defter belgesinde saklanır.


32

Jupyter dizüstü bilgisayarınıza grafik eklemek istiyorsanız, %matplotlib inlinestandart bir çözümdür. Ve matplotlibJupyter içinde etkileşimli olarak kullanacak başka sihirli komutlar da var .

%matplotlib: Herhangi bir pltçizim komutu artık bir şekil penceresinin açılmasına neden olacak ve çizimi güncellemek için başka komutlar da çalıştırılabilir. Bazı değişiklikler otomatik olarak çizilmez, bir güncellemeyi zorlamak için kullanınplt.draw()

%matplotlib notebook: dizüstü bilgisayarın içine yerleştirilmiş etkileşimli grafiklere yol açacak, şekli yakınlaştırabilir ve

%matplotlib inline: yalnızca not defterine statik resimler çizin


7

IPython 5.0 ve matplotlib 2.0 ile başlayarak, IPython'un özel sihir ve matplotlib.pyplot.ion()/matplotlib.pyplot.ioff()IPython dışında çalışma avantajlarına sahip kullanımından kaçınabilirsiniz .

ipython belgeleri


Bence bu arka ucun değiştirilmesinden farklı. Arka uç olmadıkça inline, dış pencerelerde grafikler oluşturulur ve bunları not defterinde göstermek için display () kullanmanız gerekir.
Vincenzooo

4

Arka ucun ne olduğunu bilmiyorsanız, bunu okuyabilirsiniz: https://matplotlib.org/tutorials/introductory/usage.html#backends

Bazı insanlar matplotlib'i python kabuğundan etkileşimli olarak kullanırlar ve komut yazdıklarında çizim pencereleri açılır. Bazı insanlar hızlı veri analizi için Jupyter dizüstü bilgisayarları çalıştırır ve satır içi grafikler çizer. Diğerleri zengin uygulamalar oluşturmak için matplotlib'i wxpython veya pygtk gibi grafik kullanıcı arabirimlerine yerleştirir. Bazı insanlar, sayısal simülasyonlardan postscript görüntüleri oluşturmak için toplu komut dosyalarında matplotlib kullanır ve diğerleri de grafiklere dinamik olarak hizmet vermek için web uygulama sunucuları çalıştırır. Tüm bu kullanım durumlarını desteklemek için matplotlib farklı çıktıları hedefleyebilir ve bu özelliklerin her birine arka uç denir; "ön uç" kullanıcıya bakan kod, yani çizim kodudur, "arka uç" ise şekil oluşturmak için perde arkasındaki tüm zor işleri yapar.

Bu nedenle,% matplotlib satır içi yazdığınızda satır içi arka ucu etkinleştirir. Önceki yazılarda tartışıldığı gibi:

Bu arka uçla, çizim komutlarının çıktısı, Jupyter dizüstü bilgisayar gibi ön uçlarda, onu üreten kod hücresinin hemen altında satır içi olarak görüntülenir. Sonuçta ortaya çıkan grafikler de defter belgesinde saklanır.


4

Bu, kodumuzun bir parçası olarak oluşturduğumuz herhangi bir grafiğin, bu sihirli ifadeyi kullanmadığımızda gerçekleşecek olan ayrı bir pencerede değil, aynı not defterinde görüneceği anlamına gelir.


3

Açıklamak için:

Eğer böyle sevmiyorsanız:

resim açıklamasını buraya girin

Ekle %matplotlib inline

resim açıklamasını buraya girin

ve orada jupyter dizüstü bilgisayarınızda var.


2

TL; DR

%matplotlib inline - Çıktı satır içi görüntüler


IPython çekirdeği, kod yürüterek grafikleri görüntüleme yeteneğine sahiptir. IPython çekirdeği, bu işlevselliği sağlamak için matplotlib çizim kütüphanesiyle sorunsuz çalışacak şekilde tasarlanmıştır.

%matplotlibIPython ile el ele çalışmasını sağlamak için gerekli sahne arkası kurulumunu gerçekleştiren sihirli bir komuttur matplotlib; herhangi bir Python içe aktarma komutu yürütmez, yani ad alanına isim eklenmez.

Çıktıyı ayrı pencerede görüntüle

%matplotlib

Ekran çıkışı satır içi

(yalnızca Jupyter Notebook ve Jupyter QtConsole için kullanılabilir)

%matplotlib inline

Etkileşimli arka uçlara sahip ekran

(geçerli değerler 'GTK3Agg', 'GTK3Cairo', 'MacOSX', 'nbAgg', 'Qt4Agg', 'Qt4Cairo', 'Qt5Agg', 'Qt5Cairo', 'TkAgg', 'TkCairo', 'WebAgg', 'WX', 'WXAgg', 'WXCairo', 'agg', 'cairo', 'pdf', 'pgf', 'ps', 'svg', 'template')

%matplotlib gtk

Örnek - GTK3Agg - Bir GTK 3.x tuvaline dönüştüren bir Agg (PyGObject ve pycairo veya cairocffi gerektirir).

Matplotlib etkileşimli arka uçları hakkında daha fazla bilgi: burada


İle başlayarak IPython 5.0ve matplotlib 2.0IPython kendine özgü büyü ve kullanım kullanımı önleyebilirsiniz matplotlib.pyplot.ion()/ matplotlib.pyplot.ioff() yanı ipython dışında çalışma avantajları vardır.

Bakınız: IPython Zengin Çıktı - Etkileşimli Çizim


Burada gerçek noob soru, üzgünüm .... "IPython çekirdeği" nedir ve "sihirli komut" nedir. Python aniden üzerime ayrıldı ve pitonik olmuyor mu? Bu kavramları hiç duymadım.
lb_so

Bir python defteri (ipynb) için - bir ipython çekirdeği veya jupyter çekirdeği, proje tarafından kullanılacak python (ve bağımlılıklar) sürümüdür. Bir jupyter not defteri başlatabilir ve sonra hücreleri farklı bir python yapılandırmasıyla çalıştırmak ve ortam değişkenlerini ve çok daha fazlasını yapılandırmak için çekirdekleri değiştirebilirsiniz.
Ani Menon

@Ib_so Magic komutu bir ipython / jupyter özelliğidir. Daha fazlasını buradan okuyun.
Ani Menon

0

Jupyter Notebook çalıştırıyorsanız,% matplotlib satır içi komutu çizim çıktılarınızın not defterinde görünmesini sağlar, ayrıca saklanabilir.


-8

Bunu yazmak zorunlu değildir. ( %matplotlib) Sihirli işlevi olmadan benim için iyi çalıştı . Anaconda ile birlikte gelen Sypder derleyicisini kullanıyorum.


13
Spyder bir IDE, derleyici değil.
Matthieu Brucher

3
Cevabınız OP'nin sorusuna cevap vermese de, benimkine cevap verdi. Teşekkür ederim.
EngrStudent
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.