matplotlib ohne GUI

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
NoRulez
User
Beiträge: 36
Registriert: Donnerstag 1. November 2007, 15:31

matplotlib ohne GUI

Beitragvon NoRulez » Montag 8. September 2008, 17:35

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/diary/archive/2005/04/23/matplotlib_without_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
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: matplotlib ohne GUI

Beitragvon Leonidas » Montag 8. September 2008, 18:14

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Beitragvon veers » Montag 8. September 2008, 18:36

google matplotlib backend erstes Ergebnis: http://matplotlib.sourceforge.net/backends.html

Code: Alles auswählen

import matplotlib
matplotlib.use('PS')


:wink:
My Website - 29a.ch
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Dienstag 9. September 2008, 08:45

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
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Beitragvon veers » Dienstag 9. September 2008, 09:07

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:
My Website - 29a.ch

"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann

Wer ist online?

Mitglieder in diesem Forum: mollyman