Seite 1 von 1

matplotlib ohne GUI

Verfasst: Montag 8. September 2008, 17:35
von NoRulez
Hey @all,

ich versuchte unter linux ein png mit einem linien Diagramm zu erstellen. Jedoch benötigt matplotlib ein DISPLAY gesetzt. Nun habe ich folgende Seite gefunden die erklärt wie man das ganze ohne GUI zum laufen bekommt http://www.dalkescientific.com/writings ... t_gui.html.

Mein Problem ist jetzt nur das ich die Datei setup.cfg nirgends am System habe, obwohl python-matplotlib installiert ist.

Weiß jemand wo man das mit der GUI noch ausschalten/deaktivieren kann, der gesagte PC/Server keinen Monitor besitzt.

Beispiel beim Ausführen eines Scripts:

Code: Alles auswählen

Traceback (most recent call last):
  File "./barchart_demo.py", line 3, in <module>
    import matplotlib.pyplot as plt
  File "/usr/lib/python2.5/site-packages/matplotlib/pyplot.py", line 37, in <module>
    new_figure_manager, draw_if_interactive, show = pylab_setup()
  File "/usr/lib/python2.5/site-packages/matplotlib/backends/__init__.py", line 24, in pylab_setup
    globals(),locals(),[backend_name])
  File "/usr/lib/python2.5/site-packages/matplotlib/backends/backend_gtkagg.py", line 10, in <module>
    from matplotlib.backends.backend_gtk import gtk, FigureManagerGTK, FigureCanvasGTK,\
  File "/usr/lib/python2.5/site-packages/matplotlib/backends/backend_gtk.py", line 7, in <module>
    import gtk; gdk = gtk.gdk
  File "/usr/lib/python2.5/site-packages/gtk-2.0/gtk/__init__.py", line 79, in <module>
    _init()
  File "/usr/lib/python2.5/site-packages/gtk-2.0/gtk/__init__.py", line 67, in _init
    _gtk.init_check()
RuntimeError: could not open display
als Beispiel nahm ich barchart_demo.py

Wenn ich nun das DISPLAY setze würde es gehen, jedoch brauche ich das GUI* nicht von der Console

Lg NoRulez

Re: matplotlib ohne GUI

Verfasst: Montag 8. September 2008, 18:14
von Leonidas
NoRulez hat geschrieben:Mein Problem ist jetzt nur das ich die Datei setup.cfg nirgends am System habe, obwohl python-matplotlib installiert ist.
Wozu brauchst du die? Nutze doch einfach das verlinkte Beispiel, ohne Code zu importieren, der wiederrum PyGTK benötigt.

Verfasst: Montag 8. September 2008, 18:36
von veers
google matplotlib backend erstes Ergebnis: http://matplotlib.sourceforge.net/backends.html

Code: Alles auswählen

import matplotlib
matplotlib.use('PS')
:wink:

Verfasst: Dienstag 9. September 2008, 08:45
von CM
Ja, alldieweil ich für PNGs eher

Code: Alles auswählen

import matplotlib
matplotlib.use('Agg')
nutze würde ;-).

Im Übrigen ist die Seite von Andrew relativ veraltet. Wahrscheinlich hat er wenig Gelegenheit zum Überarbeiten. Aber im Allgemeinen reagiert er zügig, wenn man ihn darauf hinweist.

Und schließlich sollte mit der Installation von matplotlib ein File "matplotlibrc" angelegt werden - setup.cfg ist rel. veraltet und hat nur was mit der Installation zu tun. Bei mir (Linux) steht matplotlibrc unter /etc. Da stehen diverse Defaulteinstellungen drin, die man z. B. mit

Code: Alles auswählen

from matplotlib import rc
rc('text',usetex=True)
# oder
matplotlib.rcParams['font.size'] = 14.0
in einzelnen Skripten ändern kann, wenn man nicht das matplotlibrc-File editieren möchte.

HTH
Christian

Verfasst: Dienstag 9. September 2008, 09:07
von veers
CM hat geschrieben:Ja, alldieweil ich für PNGs eher

Code: Alles auswählen

import matplotlib
matplotlib.use('Agg')
nutze würde ;-).
War ein Zitat von der Matplotlib Seite und keine Empfehlung. Hätte ich vielleicht klarer Formatieren müssen. :wink: