pyplot.show () çağrmasına rağmen matplotlib çizimlerimi göstermiyor


175

Matplotlib için yardım gerekir. Evet, pyplot.show () 'u çağırmayı unutmadım.

$ ipython --pylab

import matplotlib.pyplot as p 
p.plot(range(20), range(20))

matplotlib.lines.Line2D at 0xade2b2cÇıktı olarak geri döner .

p.show()

Gerçekleşecek hiçbir şey yok. Hata mesajı yok. Yeni pencere yok. Hiçbir şey değil. Ben yüklemek matplotlibpip kullanarak ve herhangi bir hata mesajlarını almadı.

Detaylar:

Kullanırım,

  • Ubuntu
  • IPython v0.11
  • Python v2.6.6
  • matplotlib v1.0.1

Yanıtlar:


177

Ben benim arka uç ayarlarsanız templateiçinde ~/.matplotlib/matplotlibrc, o zaman senin belirtiler üretebilir:

~ / .Matplotlib / matplotlibrc:

# backend      : GtkAgg
backend      : template

Dosyanın matplotlibrcdizinde bulunmayabileceğini unutmayın ~/.matplotlib/. Bu durumda, aşağıdaki kod nerede olduğunu gösterir:

>>> import matplotlib
>>> matplotlib.matplotlib_fname()

In [1]: import matplotlib.pyplot as p

In [2]: p.plot(range(20),range(20))
Out[2]: [<matplotlib.lines.Line2D object at 0xa64932c>]

In [3]: p.show()

~/.matplotlib/matplotlibrcArka ucu düzenler ve benzer bir şeyle değiştirirseniz, GtkAggbir grafik görmelisiniz. Makinenizde bulunan tüm arka uçları

import matplotlib.rcsetup as rcsetup
print(rcsetup.all_backends)

Aşağıdaki gibi bir liste döndürmelidir:

['GTK', 'GTKAgg', 'GTKCairo', 'FltkAgg', 'MacOSX', 'QtAgg', 'Qt4Agg',
'TkAgg', 'WX', 'WXAgg', 'CocoaAgg', 'agg', 'cairo', 'emf', 'gdk', 'pdf',
'ps', 'svg', 'template']

Referans:


2
Denedim ama şöyle bir hata aldım:ImportError: No module named _backend_gdk
Baskaya

6
Çok yorum için özür dilerim. İşe yarıyor. Qt4Agg'ı denedim ve vurdum. Teşekkürler :) .. Son şey, nerede varsayılan matplotlibrc bulabilirim veya oluşturmak için herhangi bir yolu var mı?
Baskaya

Düzensizlik için özür dilerim. Sanırım buldum
Baskaya

8
Bu cevap eskidir, yapılandırma şimdi olmalıdır ~/.config/matplotlib/matplotlibrc(en azından python 3 için). Ben sadece ilgili bir sorun vardı ve ben bir ~/.matplotlib/dizin oluşturdu ve python 3 yapılandırma okumaktan durdu python 2.7, matplotlib kullanarak neden olduğunu düşünüyorum ~/.config/matplotlib/. Silme ~/.matplotlib/sorunu benim için çözdü.
naught101

5
6 yıl sonra ve bu sorun hala var ... Şimdi neden Python'dan nefret ettiğimi hatırlıyorum: her kod satırında bir problem.
pookie

70

Ben aynı sorunu Ubuntu 12.04 üzerinde koştu, çünkü kullanarak matplotlib (bir virtualenv içinde)

pip install matplotlib

Uzun lafın kısası, tavsiyem şudur: pip kullanarak veya elle matplotlib kurmaya çalışmayın; gerçek bir paket yöneticisinin (örneğin apt-get / synaptic) kurmasını ve sizin için tüm bağımlılıklarını kursun.

Ne yazık ki, matplotlib'in arka uçları (gerçekte çizimlerinizi oluşturmak için alternatif yöntemler) pip'in uğraşmayacağı her türlü bağımlılığa sahiptir. Daha da kötüsü, sessizce başarısız olur; yani pip install matplotlibmatplotlib'i başarıyla yüklüyor gibi görünüyor. Ancak kullanmaya çalıştığınızda (örn. pyplot.show()), Hiçbir çizim penceresi görünmez. Web'deki insanların önerdiği tüm farklı arka uçları denedim (Qt4Agg, GTK, vb.) Ve hepsi başarısız oldu (yani matplotlib.pyplot'u içe aktarmaya ImportErrorçalıştığımda, eksik olan bir bağımlılığı içe aktarmaya çalıştığım için). Daha sonra bu bağımlılıkları nasıl kuracağımı araştırdım, ancak Python olmayan paket bağımlılıkları olan herhangi bir paket için pip'i (virtualenv içinde) uygun bir kurulum çözümü olarak kullanmaktan vazgeçmek istiyorum.

Tüm deneyim bana matplotlib gibi yazılım yüklemek için apt-get / synaptic'e (yani Ubuntu paket yöneticisi) sürünerek gönderdi. Mükemmel çalıştı. Tabii ki, bu sadece sistem dizinlerinize yükleyebileceğiniz, sanal bir iyilik yapamayacağınız ve Ubuntu'nun dağıttığı sürümlerle sıkışıp kaldığınız anlamına gelir, bu da mevcut sürümün çok gerisinde olabilir ...


2
Cevabınız bir BIT uzunluğunda, OP için kısaltmayı düşünebilirsiniz.
theJollySin

5
--system-site-packagesSeçeneği denedin mi?
Tianyang Li

1
% Christopher Lee Herhangi bir hata / diğer şikayet olmadan gösterilmiyor rakamlar ile sorun olduğunda varsayılan arka uç pip installolmasıdır agg. Neden olduğundan emin değilim ama unutbu'nun cevabına göre değiştirebilirsiniz. pipgüncel bir sürüm kurma avantajına sahiptir - apteski bir sürüm yükler. Bazen istediğiniz / ihtiyacınız olan hata düzeltmeleri / yeni özellikler vardır.
drevicko

2
Sadece devre dışı bırakmak virtualenvçalıştı! Ve matplotlib 1.4'ü sistem çapındaki kaynaktan (Ubuntu'da) yükleyebildim, ancak altında değil virtualenv.
osa

1
Ve apt-get kullanamayan Windows iş makinelerinde sıkışmış olanlarımızın çözümü nedir?
ale19

34

% matplotlib satır içi

Benim için defter ile çalışmak, arsa çalışmadan önce yukarıdaki satırı eklemek.


%pylab inline@Bhanu Pratap Singh
Reed Sandberg

10

İleride başvurmak için,

Aynı sorunla karşılaştım - pylab ipython altında gösterilmiyordu. Sorun, ipython'un {ipython_config.py} yapılandırma dosyası değiştirilerek giderildi. Yapılandırma dosyasında

c.InteractiveShellApp.pylab = 'auto'

'Auto' seçeneğini 'qt' olarak değiştirdim ve şimdi grafikler görüyorum


5
veya "ipython --pylab = qt" kullanarak
andrew cooke

Bu çalışacaktır, ancak yalnızca kısmi bir çözüm: Varsayılan arka uç ise agg, ben şey yok %pylab inlineçalışacaktır, ne de doğrudan yani komut dosyalarını çalıştırdığınızda araziler gösterecektir: python myscript.py. unutbu'nun cevabı her yerde düzeltmeli.
drevicko


8

Sorunumu çözen sadece üstteki ipython not defterinde aşağıdaki iki satırı kullanmaktı

%matplotib inline
%pylab inline

Ve işe yaradı. Ubuntu16.04 ve ipython-5.1 kullanıyorum


Lütfen yukarıdaki yorumların biçimlendirmesini düzeltin ... Teşekkürler.
Saras Arya

Bitti - Bu blog yazısı pylab'ı bash rağmen , eklemenin neden %pylab inlineişe yaradığını gösteren bir fikir edineceksiniz .
Bhanu Pratap Singh

2

Bu işe almak için matplotlib kaynağından yüklemek zorunda kaldı. Anahtar talimatlar ( http://www.pyimagesearch.com/2015/08/24/resolved-matplotlib-figures-not-showing-up-or-displaying/ adresinden ):

$ workon plotting
$ pip uninstall matplotlib
$ git clone https://github.com/matplotlib/matplotlib.git
$ cd matplotlib
$ python setup.py install

@Unutbu'nun dediği gibi, arka ucu değiştirerek, tüm farklı arka uçların da çalışmamasıyla ilgili daha fazla sorunla karşılaştım.


1
Bir tedavi çalıştı, sadece git klonu ve python kurulum adımları kullanılır ama plt.show () ile hiçbir sorun çalıştırdığınızda.
Steve

2

Pylab'ı içe aktarmadan önce aşağıdaki iki satırı eklemek benim için işe yarıyor gibi görünüyor

import matplotlib
matplotlib.use("gtk")

import sys
import pylab
import numpy as np

0

Bu başlangıç ​​komut dosyasının etkin olduğundan emin olun: (Tercihler> Konsol> Gelişmiş Seçenekler)

/usr/lib/python2.7/dist-packages/spyderlib/scientific_startup.py

Standart PYTHONSTARTUP etkinse etkileşimli bir çiziminiz olmaz


0

@Rikki benzer şekilde, ben yükselterek bu sorunu çözmüş matplotlibile pip install matplotlib --upgrade. Yükseltme yapamıyorsanız kaldırma ve yeniden yükleme işlemi işe yarayabilir.

pip uninstall matplotlib
pip install matplotlib

0

Benim için sorun sadece macOS altında boş bir matplotlibrc dosya oluşturursam olur ~/.matplotlib. İçine "arka uç: macosx" eklenmesi sorunu çözer.

Ben bir hata olduğunu düşünüyorum: backendbenim belirtilmemişse matplotlibrcvarsayılan değeri almalıdır.



0

İhtiyacım olduğunu fark ettim window = Tk()ve sonrawindow.mainloop()


Biraz açıklama ekleyebilir misiniz? Çözümünüz diğerlerinden nasıl farklı?
Ralf Stubner

-2

Ubuntu 12.04 için:

sudo apt-get install python-qt4
virtualenv .env --no-site-packages
source .env/bin/activate
easy_install -U distribute
ln -s /usr/lib/python2.7/dist-packages/PyQt4 .
ln -s /usr/lib/python2.7/dist-packages/sip.so .
pip install matplotlib
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.