#python #google-colaboratory #igraph
#питон #google-совместная лаборатория #igraph
Вопрос:
Я пытаюсь строить igraph
сюжеты в Google Colab и не могу заставить его работать.
Я использую следующий код для построения графика:
fg = Graph.Full(n=40, directed=False, loops=False) plot(fg).show()
Сначала я получил эту ошибку "NotImplementedError: showing plots is not implemented on this platform: Linux"
, но мне удалось ее обойти, настроив средство просмотра изображений с помощью следующего:
from igraph import Configuration cfg = Configuration.instance() cfg['apps.image_viewer'] = "eog"
Это устранило ошибку, но, тем не менее, изображение не отображается. Удаление show()
инструкции, чтобы она отображалась встроенно, также не работает.
Существует ли способ построения графиков диаграмм в Google Colab или он просто не совместим?
Спасибо вам за вашу помощь.
Комментарии:
1. Вы установили
pycairo
на планшеты Google? Если это так, то синглplot(fg)
должен сработать.2. Вы можете сделать следующее:
!apt install libcairo2-dev
и!pip install pycairo
установитьpycairo
на Google Colab.3. @mathfux, почему бы тебе не дать такой ответ?
4. @Szabolcs Не уверен, поможет ли это для OP. Для меня он ведет себя немного по-другому.
plot(fg).show()
не сработает, ноplot(fg)
работает. Кроме того, не уверен, что этоpycairo
связано с проблемой.
Ответ №1:
Этот .show()
метод устарел и будет удален в будущей версии. Не используйте его. Дополнительную информацию смотрите в строке документа. Просто используйте plot(g)
.
Вы можете установить igraph в Google Colab с помощью
!pip install igraph
Чтобы использовать построение графиков, у вас есть два варианта.
С бэкендом в Каире:
Устанавливать pycairo
,
!apt install libcairo2-dev !pip install pycairo
import igraph as ig g = ig.Graph.Erdos_Renyi(n=100, m=200) ig.plot(g)
С экспериментальным бэкэндом matplotlib (еще не завершенным):
import matplotlib.pyplot as plt fig, ax = plt.subplots() ig.plot(g, target=ax)
Или короче:
ig.plot(g, target=plt.axes())
Комментарии:
1.
igraph
имеет поддержкуmatplotlib
, вау! Приятно слышать от вас, что это быстро развивается.