Similarly to this question ,我想使用以下代码从单个 ipython-notebook 单元格中绘制多个图形:
[1]:
%matplotlib inline
import igraph # it is `pip install python-igraph` on py2
import matplotlib.pyplot as plt
import numpy as np
[2]:
# draws a graph successfully
igraph.plot(igraph.Graph.Erdos_Renyi(10, .5))
[3]:
for p in np.arange(.3, .8, .1):
g = igraph.Graph.Erdos_Renyi(10, p)
igraph.plot(g)
如何在笔记本上显示来自
[3]
单元格的多个图形?如果我想绘制一些像这样的 matplotlib 图表,似乎可以使用这个解决方案:
[4]:
for p in np.arange(.3, .8, .1):
g = igraph.Graph.Erdos_Renyi(10, p)
plt.loglog(sorted(g.degree(), reverse=True), marker='o')
plt.show()
但这不适用于 igraph 图 AFAICS。有什么方法可以将
igraph.drawing.Plot
转换为更熟悉 matplotlib 的对象吗? 最佳答案
我最终得到了这样的解决方案:
from IPython.core.display import display, SVG
for p in np.arange(.3, .8, .1):
g = igraph.Graph.Erdos_Renyi(10, p)
print(p)
display(SVG(igraph.plot(g)._repr_svg_()))
同样可用于支持
_repr_svg_()
或 _repr_png_()
的任何对象,因此到目前为止这不受 igraph-python 的限制。关于python - 从单个 jupyter/ipython 单元绘制多个 python-igraph 图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45015746/