मैं पायथन में matplotlib में 'बैकएंड' कैसे सेट कर सकता हूं?


91

मैं matplotlib का नया उपयोगकर्ता हूं, मेरा मंच उबंटू 10.04 पायथन 2.6.5 है

यह मेरा कोड है

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt 
plt.plot([1,2,3])

त्रुटि है:

/usr/local/lib/python2.6/dist-packages/matplotlib/backends/__init__.py:41: UserWarning: 
Your currently selected backend, 'agg' does not support show().
Please select a GUI backend in your matplotlibrc file ('/usr/local/lib/python2.6/dist-packages/matplotlib/mpl-data/matplotlibrc')
or with matplotlib.use()
  (backend, matplotlib.matplotlib_fname()))
  • मैंने एंटी-ग्रेन ज्यामिति पुस्तकालय स्थापित किया, apt-get install libaggलेकिन यह काम नहीं कर रहा है।
  • मैंने 'GTK' और 'TkAgg' जैसे बैकएंड के अन्य तर्क का उपयोग करने की कोशिश की।
  • मैंने python-gtk2-devपैकेज स्थापित किया , लेकिन फिर भी त्रुटि नीचे है।
  • क्या कोई मुझे एक निष्पादन योग्य बैकएंड तर्क और इसकी निर्भरता पुस्तकालय बता सकता है?

यहाँ त्रुटि है:

>>> matplotlib.use('GTK')
>>> import matplotlib.pyplot as plt
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.6/dist-packages/matplotlib/pyplot.py", line 95, in <module>
    new_figure_manager, draw_if_interactive, show = pylab_setup()
  File "/usr/local/lib/python2.6/dist-packages/matplotlib/backends/__init__.py", line 25, in pylab_setup
    globals(),locals(),[backend_name])
  File "/usr/local/lib/python2.6/dist-packages/matplotlib/backends/backend_gtk.py", line 28, in <module>
    from matplotlib.backends.backend_gdk import RendererGDK, FigureCanvasGDK 
  File "/usr/local/lib/python2.6/dist-packages/matplotlib/backends/backend_gdk.py", line 29, in <module>
    from matplotlib.backends._backend_gdk import pixbuf_get_pixels_array
ImportError: No module named _backend_gdk

जवाबों:


93

आपके वर्तमान में चयनित बैकएंड, 'एग' शो () का समर्थन नहीं करता है।

AGGबैकएंड फ़ाइल में लिखने के लिए है, न कि किसी विंडो में रेंडर करने के लिए। Matplotlib वेब साइट पर बैकएंड FAQ देखें ।

ImportError: _backend_gdk नाम का कोई मॉड्यूल नहीं

दूसरी त्रुटि के लिए, शायद आपका matplotlib वितरण GTK समर्थन के साथ संकलित नहीं किया गया है, या आप PyGTK पैकेज को याद करते हैं। इसे स्थापित करने का प्रयास करें।

क्या आप show()किसी टर्मिनल या एप्लिकेशन के अंदर की विधि को कहते हैं जिसमें एक ग्राफिकल वातावरण तक पहुंच है?

इस क्रम में, अन्य GUI बैकेंड आज़माएँ:

  • TkAgg
  • WX
  • QTAgg
  • QT4Agg

बहुत बहुत धन्यवाद गलत कर्मचारी जो मैंने किया था, सेटअप matplotlib पाने से पहले PyGTK
user504909

1
एक पक्ष की टिप्पणी के रूप में, मैं QTAgg को अंतिम लक्ष्य 3 के रूप में लेने की कोशिश करूंगा और संभवतः मध्यावधि में पदावनत किया जाएगा।
ताकसवेल

30

FYI करें, मैंने पाया कि मुझे matplotlib.use('Agg')पायथन इंपोर्ट ऑर्डर में पहला स्थान हासिल करने की जरूरत है । मैं जो कर रहा था (इकाई परीक्षण के लिए सिरहीन होने की आवश्यकता थी) जो डालने का मतलब था

import matplotlib
matplotlib.use('Agg')

मेरे मास्टर टेस्ट स्क्रिप्ट के शीर्ष पर। मुझे किसी अन्य फाइल को छूने की जरूरत नहीं थी।


मुझे वही काम करना चाहिए जो मुझे बहुत परेशान करता है। क्या आपने कभी एक और एलेगेंट समाधान ढूंढा है?
QM.py

और मैंने पाया कि यह बहुत महत्वपूर्ण है (कुछ अन्य आयातों के बाद नहीं)। +1।
रयान

हां, यह पूरी तरह से पहली बात है जो आप किसी भी अन्य मेटप्लोटलिब आयात से पहले करते हैं।
जेककोटन

19

इसे कॉन्फ़िगरेशन फ़ाइल में भी सेट किया जा सकता है matplotlibrc(उदाहरण के लिए त्रुटि संदेश में बताया गया है), उदाहरण के लिए:

# The default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo
# CocoaAgg MacOSX Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG
backend : Agg

इस तरह, यदि अन्य लोगों के साथ कोड साझा किया जाता है, तो बैकएंड को हार्डकोड करने की आवश्यकता नहीं है। अधिक जानकारी के लिए, दस्तावेज़ की जाँच करें ।


7

आपके द्वारा पोस्ट की गई त्रुटियां असंबंधित हैं। पहला कारण आपके लिए एक बैकएंड का चयन करना है जो इंटरएक्टिव उपयोग के लिए नहीं है, यानी एग। आप अभी भी उन लिपियों की पीढ़ी के लिए उपयोग कर सकते हैं (और उपयोग करना चाहिए) जो उन लिपियों में हैं जिन्हें उपयोगकर्ता के संपर्क की आवश्यकता नहीं है।

यदि आप मैटलैब / पाइलैब में एक इंटरैक्टिव लैब-पर्यावरण चाहते हैं, तो आप स्पष्ट रूप से एक बैकएंड का समर्थन करेंगे, जैसे कि Qt4Agg (Qt और AGG), GTKAgg (GTK a AGG) या WXAgg (wxWidgets और Agg)।

मैं WXAgg का उपयोग करने की कोशिश कर रहा हूं, इसके अलावा यह वास्तव में इस बात पर निर्भर करता है कि आपने पायथन और मैटप्लोटलिब (स्रोत, पैकेज आदि) को कैसे स्थापित किया है।



3

आप किसी ब्राउज़र में ग्राफ़ को देखने का भी प्रयास कर सकते हैं।

निम्न का उपयोग करें:

matplotlib.use('WebAgg')

2

जब मैंने अपने खुद के VIRTUAL_ENV में अजगर, सुन्न, डरावना, मैटलोट्लिब को संकलित करने की कोशिश की तो मैंने इसे मारा।

Matplotlib स्थापित करने से पहले आपको निर्माण और स्थापित करना होगा: pygobject pycairo pygtk

और फिर इसे matplotlib के साथ करें: 'python ./setup.py build-help' के साथ matplotlib चेक बनाने से पहले अगर 'gtkagg' बैकएंड सक्षम है। फिर निर्माण और स्थापित करें

निर्यात से पहले PKG_CONFIG_PATH = $ VIRTUAL_ENV / lib / pkgconfig


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