matplotlib मेरे चित्र नहीं दिखाता है, हालांकि मैं pyplot.show () कहता हूं


175

Matplotlib पर आवश्यक मदद। हां, मैं pyplot.show () को कॉल करना नहीं भूला।

$ ipython - पाइलैब

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

यह matplotlib.lines.Line2D at 0xade2b2cआउटपुट के रूप में लौटता है ।

p.show()

कुछ होने वाला नहीं है। कोई त्रुटि संदेश नहीं। कोई नई खिड़की नहीं। कुछ भी तो नहीं। मैं matplotlibपाइप का उपयोग करके स्थापित करता हूं और मैंने कोई त्रुटि संदेश नहीं लिया है।

विवरण:

मैं उपयोग करता हूं,

  • उबंटू
  • आईपीथॉन v0.11
  • पायथन v2.6.6
  • matplotlib v1.0.1

जवाबों:


177

अगर मैं करने के लिए मेरे बैकएंड सेट templateमें ~/.matplotlib/matplotlibrc, तो मैं अपने लक्षणों पुन: पेश कर सकते हैं:

~ / .Matplotlib / matplotlibrc:

# backend      : GtkAgg
backend      : template

ध्यान दें कि फ़ाइल matplotlibrcनिर्देशिका में नहीं हो सकती है ~/.matplotlib/। इस स्थिति में, निम्न कोड दिखाता है कि यह कहां है:

>>> 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/matplotlibrcबैकएंड को संपादित करते हैं और कुछ को बदलते हैं GtkAgg, तो आपको एक प्लॉट देखना चाहिए। आप अपने मशीन पर उपलब्ध सभी बैकएंड को सूचीबद्ध कर सकते हैं

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

इसे एक सूची वापस करनी चाहिए:

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

संदर्भ:


2
मैंने कोशिश की, लेकिन मुझे कुछ त्रुटि मिली:ImportError: No module named _backend_gdk
बसकाया

6
बहुत सारी टिप्पणी के लिए क्षमा करें। यह काम करता हैं। मैंने Qt4Agg और हिट की कोशिश की। धन्यवाद :) .. आखिरी बात, मुझे डिफ़ॉल्ट matplotlibrc कहां मिल सकता है या इसे बनाने का कोई तरीका है?
बसकाया

अनहोनी के लिए खेद है। मुझे लगता है कि मैंने पाया
बसकाया

8
यह उत्तर पुराना है, कॉन्फिग अब ~/.config/matplotlib/matplotlibrc(अजगर 3 के लिए, कम से कम) में होना चाहिए । मुझे सिर्फ एक संबंधित समस्या थी, और मुझे लगता है कि यह python 2.7 में matplotlib का उपयोग करने के कारण हुआ था, जिसने एक ~/.matplotlib/निर्देशिका बनाई , और python 3 को config पढ़ने से रोक दिया ~/.config/matplotlib/~/.matplotlib/मेरे लिए समस्या को हटा रहा है।
n

5
6 साल बाद और यह समस्या अभी भी मौजूद है ... अब मुझे याद है कि मुझे पायथन से नफरत क्यों है: कोड की हर पंक्ति पर एक समस्या।
पोकी

70

मैं Ubuntu 12.04 पर उसी समस्या में भाग गया, क्योंकि मैंने matplotlib (एक वर्चुअन के भीतर) का उपयोग करके स्थापित किया था

pip install matplotlib

लंबी कहानी को छोटा करने के लिए, मेरी सलाह है: पाइप या हाथ से मैटलोट्लिब स्थापित करने की कोशिश न करें; एक वास्तविक पैकेज मैनेजर (जैसे apt-get / synaptic) को इसे और इसके सभी आश्रितों के लिए स्थापित करें।

दुर्भाग्य से, मैटप्लोटलिब के बैकेंड (वास्तव में आपके भूखंडों को प्रदान करने के लिए वैकल्पिक तरीके) में सभी प्रकार की निर्भरताएं हैं जो पाइप से निपटेंगे नहीं। इससे भी बदतर, यह चुपचाप विफल रहता है; वह है, pip install matplotlibसफलतापूर्वक matplotlib स्थापित करने के लिए प्रकट होता है। लेकिन जब आप इसका उपयोग करने की कोशिश करते हैं (उदाहरण के लिए pyplot.show()), तो कोई प्लॉट विंडो दिखाई नहीं देगी। मैंने वेब सुझाव (Qt4Agg, GTK, इत्यादि) पर सभी अलग-अलग बैकेंड की कोशिश की, और वे सभी विफल रहे (यानी जब मैंने matplotlib.pyplot को आयात करने की कोशिश की, तो मुझे ImportErrorइसलिए मिला क्योंकि यह कुछ निर्भरता को गायब करने की कोशिश कर रहा है)। मैंने तब शोध किया कि उन आश्रितों को कैसे स्थापित किया जाए, लेकिन इसने मुझे गैर-पायथन पैकेज निर्भरता वाले किसी भी पैकेज के लिए व्यवहार्य स्थापना समाधान के रूप में पाइप (वर्चुअनव के भीतर) का उपयोग करना छोड़ना चाहा।

पूरे अनुभव ने मुझे matplotibib जैसे सॉफ़्टवेयर स्थापित करने के लिए apt-get / synaptic (यानी उबंटू पैकेज मैनेजर) पर वापस क्रॉल करने के लिए भेजा। यह पूरी तरह से काम किया। बेशक, इसका मतलब है कि आप केवल अपने सिस्टम निर्देशिका में स्थापित कर सकते हैं, कोई virtualenv अच्छाई नहीं, और आप उन संस्करणों के साथ फंस गए हैं जो उबंटू वितरित करता है, जो वर्तमान संस्करण के पीछे हो सकता है ...


2
आपका उत्तर एक बीआईटी लंबा है, आप ओपी के लिए छोटा करने पर विचार कर सकते हैं।
TheJollySin

5
क्या आपने --system-site-packagesविकल्प की कोशिश की है?
तियानयांग ली

1
% क्रिस्टोफर ली किसी भी त्रुटि / अन्य शिकायत के बिना नहीं दिखाने वाले आंकड़ों की समस्या है क्योंकि जब आप होते हैं तो डिफ़ॉल्ट बैकएंड होता pip installहै agg। मुझे यकीन नहीं है कि क्यों, लेकिन आप इसे unutbu के उत्तर के अनुसार बदल सकते हैं। pipअप-टू-डेट संस्करण को स्थापित करने का प्रमुख लाभ है - aptएक पुराना संस्करण स्थापित करता है। कभी-कभी बग फिक्स / नई सुविधाएँ होती हैं जो आपको चाहिए / चाहिए।
drevicko

2
बस virtualenvकाम निष्क्रिय कर दिया ! और मैं स्रोत सिस्टमव्यापी (Ubuntu पर) से matplotlib 1.4 स्थापित करने में सक्षम था, लेकिन इसके तहत नहीं virtualenv
osa

1
और हममें से उन लोगों के लिए क्या उपाय है जो विंडोज की कार्य मशीनों पर अटके हुए हैं जो उपयुक्त उपयोग नहीं कर सकते हैं?
ale19

34

% मटलपोटलिब इनलाइन

मेरे लिए नोटबुक के साथ काम करना, भूखंड के काम करने से पहले उपरोक्त पंक्ति को जोड़ना।


मुझे %pylab inlineअपनी नोटबुक पर @Bhanu प्रताप सिंह द्वारा लिखित रूप में उपयोग करने की आवश्यकता है
रीड सैंडबर्ग

10

आगामी संदर्भ के लिए,

मुझे एक ही समस्या का सामना करना पड़ा है - पायलैब आईपीथॉन के तहत नहीं दिखा रहा था। IPython की कॉन्फिग फ़ाइल {ipython_config.py} को बदलकर समस्या को ठीक किया गया था। विन्यास फाइल में

c.InteractiveShellApp.pylab = 'auto'

मैंने 'ऑटो' को 'qt' में बदल दिया और अब मुझे ग्राफ़ दिखाई देते हैं


5
या "ipython --pylab = qt" का उपयोग करके
andrew cooke

यह काम करेगा, लेकिन यह केवल एक आंशिक समाधान है: यदि आपका डिफ़ॉल्ट बैकएंड है agg, तो मैं वह चीज नहीं करता हूं जो %pylab inlineकाम करेगा, और न ही प्लॉट दिखाएगा जब आप स्क्रिप्ट को सीधे चलाते हैं python myscript.py:। unutbu का जवाब इसे हर जगह ठीक करना चाहिए।
drevicko

9

बस टाइप करो:

plt.ion()

23:30 पर https://www.youtube.com/watch?v=1zmV बैंकZsHF4 देखें !

pltमेरे आयात के कारण उपयोग किया जाता है: import matplotlib.pyplotपीएलटी के रूप में

मैं python2.7 का उपयोग कर रहा हूँ MAC iTerm2 के साथ।


8

क्या मेरी समस्या का हल सिर्फ शीर्ष पर ipython नोटबुक में नीचे की दो पंक्तियों का उपयोग करना था

%matplotib inline
%pylab inline

और इसने काम किया। मैं Ubuntu16.04 और ipython-5.1 का उपयोग कर रहा हूं


कृपया उपरोक्त टिप्पणियों का प्रारूपण सही करें ... धन्यवाद।
सरस आर्य

हो गया - हालांकि यह ब्लॉगपोस्ट पाइलैब को कोसता है लेकिन आपको अंदाजा होगा कि क्यों जोड़ने %pylab inlineसे यह काम करता है।
भानु प्रताप सिंह

2

मुझे इसे काम करने के लिए स्रोत से matplotlib स्थापित करना पड़ा। प्रमुख निर्देश ( http://www.pyimagesearch.com/2015/08/24/resolved-matplotlib-figures-not-showing-up-or-displaying/ ) इस प्रकार हैं:

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

बैकएंड को बदलकर, जैसा कि @unutbu कहते हैं, मैं अभी सभी अलग-अलग बैकेंड के साथ काम नहीं करने के साथ अधिक समस्याओं को लोड करता हूं।


1
एक ट्रीट का काम किया, केवल गिट क्लोन और पाइथन सेटअप स्टेप्स का इस्तेमाल किया लेकिन जब मैं इसे plt.show () नो इशूज के साथ चलाता हूं।
स्टीव

2

पाइलब आयात करने से पहले निम्नलिखित दो पंक्तियों को जोड़ना मेरे लिए काम करता है

import matplotlib
matplotlib.use("gtk")

import sys
import pylab
import numpy as np

0

इस स्टार्टअप स्क्रिप्ट को सक्षम करना सुनिश्चित करें: (प्राथमिकताएँ> कंसोल> उन्नत विकल्प)

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

यदि मानक PYTHONSTARTUP सक्षम है, तो आपके पास एक इंटरैक्टिव प्लॉट नहीं होगा


0

@ रिक्की के समान, मैंने इस समस्या को हल करके अपग्रेड matplotlibकिया pip install matplotlib --upgrade। यदि आप अनइंस्टॉलिंग को अपग्रेड नहीं कर सकते हैं और पुनर्स्थापना काम कर सकती है।

pip uninstall matplotlib
pip install matplotlib

0

मेरे लिए समस्या तब होती है अगर मैं बस macOS पर एक खाली matplotlibrc फाइल बनाता हूं ~/.matplotlib। इसमें "backend: macosx" जोड़ना समस्या को ठीक करता है।

मुझे लगता है कि यह एक बग है: यदि backendमेरे में निर्दिष्ट नहीं है, तो matplotlibrcइसे डिफ़ॉल्ट मान लेना चाहिए।



0

मैंने पाया कि मुझे जरूरत है window = Tk()और फिरwindow.mainloop()


क्या आप थोड़ा सा स्पष्टीकरण जोड़ सकते हैं? आपका समाधान दूसरों से अलग कैसे है?
राल्फ स्टबनर

-2

Ubuntu 12.04 के लिए:

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.