Поддержка cloud9 ide и matplotlib или другого графического инструмента для python?

Что мешает мне перейти на cloud9, так это отсутствие поддержки matplotlib, поскольку графические вещи очень важны для моей работы.

Я попытался установить matplotlib, но, похоже, есть некоторые проблемы с pygtk, хотя он, кажется, установлен. Возможно ли, чтобы онлайн-иде взаимодействовать с окнами gtk на моем локальном компьютере? Возможно, графики можно генерировать удаленно и сохранять в моем каталоге?

Было бы здорово, если бы кто-нибудь успешно справился с этим, мог бы показать мне, как это сделать?


person david_adler    schedule 26.02.2013    source источник
comment
Я бы посмотрел на бэкэнд webagg для matplotlib. Он разрабатывается для работы с ipython ноутбуками. Позволить веб-сайту зайти и захватить контроль над уровнем окна кажется мне огромной проблемой безопасности.   -  person tacaswell    schedule 26.02.2013


Ответы (2)


Вы можете изменить бэкэнд с помощью

import matplotlib
matplotlib.use('Agg')

а затем сохраните фигуру, используя figure.savefig('filename')

person david_adler    schedule 29.05.2013
comment
В Cloud9 python: matplotlib.use('Agg'), затем import matplotlib.pyplot as plt, затем fig, ax = plt.subplots(1,1) приводит к TclError: нет отображаемого имени и нет переменной среды $DISPLAY - person Bennett Brown; 02.03.2015
comment
Ah: use() необходимо вызвать перед импортом pyplot. - person Bennett Brown; 22.11.2015

Как указал Дэвид Адлер, вы можете установить серверную часть без графического интерфейса:

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

Вы можете создать фигуру обычным способом, кроме ее сохранения:

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

В Cloud9 вы можете открыть SVG на вкладке предварительного просмотра. Каждый раз, когда вы обновляете и сохраняете фигуру, обновляйте вкладку предварительного просмотра.

person Bennett Brown    schedule 22.11.2015