Показать графики igraph в Google Colab

#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 , вау! Приятно слышать от вас, что это быстро развивается.