2013-02-26 8 views
7

Die Sache, die mich daran hindert, zu cloud9 zu wechseln, ist der Mangel an Unterstützung für Matplotlib, da die Graphik für meine Arbeit sehr wichtig ist.Unterstützung für cloud9 ide und matplotlib oder andere grafische Tools für Python?

Ich habe versucht, matplotlib zu installieren, aber es scheint einige Probleme mit pygtk zu geben, obwohl es scheint installiert zu sein. Ist es sogar möglich, dass eine Online-ID mit gtk-Fenstern auf meinem lokalen Computer interagiert? Vielleicht könnten die Graphen aus der Ferne generiert und in meinem Verzeichnis gespeichert werden?

Es wäre toll wenn jemand das erfolgreich geschafft hätte könnte mir das zeigen wie?

+0

Ich würde das 'webagg' Backend für Matplotlib betrachten. Es wird entwickelt, um gut mit "ipython" -Notebooks zu spielen. Es ist für mich ein riesiges Sicherheitsproblem, eine Website in Reichweite zu lassen und die Fensterebene zu kontrollieren. – tacaswell

Antwort

5

können Sie die backend mit

ändern
import matplotlib 
matplotlib.use('Agg') 

und dann die Figur sparen mit figure.savefig('filename')

+0

Auf Cloud9 python: 'matplotlib.use ('Agg')' dann 'importieren matplotlib.pyplot as plt' dann' fig, ax = pltplots (1,1) 'ergibt TclError: kein Anzeigename und kein $ DISPLAY Umgebungsvariable –

+0

Ah: 'use()' muss vor dem Import von 'pyplot' aufgerufen werden. –

3

Wie von David Adler angegeben, können Sie einen Nicht-GUI-Backend einstellen:

import matplotlib 
matplotlib.use('Agg') 
import matplotlib.pyplot as plt # Do not do this prior to calling use() 

Sie können eine Figur auf die übliche Weise erstellen, außer sie zu speichern:

fig, ax = plt.subplots(1, 1) 
ax.hist(numpy.random.randn(1000)) 
fig.savefig('display.svg') # Any filename will do 

In Cloud9 können Sie das SVG in einer Vorschau Registerkarte öffnen. Jedes Mal, wenn Sie die Figur aktualisieren und speichern, aktualisieren Sie die Vorschau-Registerkarte.