编程语言
首页 > 编程语言> > 在python中编码和渲染(网络)图

在python中编码和渲染(网络)图

作者:互联网

下面的代码不会渲染我的图表.

import numpy
import matplotlib.pyplot as plt
import matplotlib as mpl
import pylab
import random
import scipy
from matplotlib.mlab import griddata
from pylab import *
from scipy import ndimage
def H(x,y,gamma):
    val = HenonMap(x,y,1,1,0.2,gamma)
    return val
def HenonIterate(x0,y0,n,gamma):
    (x,y) = H(x0,y0,gamma)
    for i in xrange (0,n):
        (x,y)=H(x,y,gamma)
        if (pow(x,2)) + (pow(y,2)) > 100:
            return i
    return n

def g():
    x2=1000
    y2=1000
    max=100
    u = zeros([x2,y2])
    for x in range(x2):
        for y in range(y2):
            y0= .01*y-5.0
            x0= -.01*x+5.0
            u[x][y] = HenonIterate(x0,y0,max,1.03)
        imshow(u)
        show()

解决方法:

从你的代码看,我不确定你的想法,所以我很难直接使用它;但是,我可以向您展示如何在python中创建图形并在Matplotlib中渲染它们.

Networkx是一个出色的python库,用于生成图形,分析它们,并通过Matplotlib或Graphviz渲染它们.例如,

from matplotlib import pyplot as MPL
import networkx as NX                  # import networkx

您可以通过导入数据文件(Networkx有相当多的模块在格式之间进行转换)或使用Networkx的gtraph生成器之一在Networkx中创建图形.为了生成下面显示的图形,我创建了一种特殊类型的二项式随机图,erdos-renyi.

要在Networkx中创建图形,我只需调用图形构造函数并传入所需数量的节点和边缘创建概率.

G = NX.erdos_renyi_graph(10, .3)

在Networkx中渲染此图是微不足道的 – 只需调用draw并传入图形.在幕后,网络传递在Matplotlib中渲染图形所需的所有数据(例如,节点位置,样式属性,标签等),并为您调用Matplotlib的绘图方法,传递所有这些数据.与Matplotlib的唯一交互需要用户可以分别调用show或savefig将其呈现在屏幕上或文件中.

NX.draw(G)
MPL.show()

如果你想自己生成图形,然后将其交给Networkx通过Matplotlib进行渲染,这也很简单.例如,下面,我创建一个5 x 5 NumPy数组来表示邻接矩阵(表示稀疏图数据的最常见格式):

>>> G = NP.random.randint(0, 2, 25).reshape(5, 5)
>>> G
  array([[0, 0, 1, 0, 1],
        [1, 0, 0, 1, 1],
        [0, 0, 1, 0, 1],
        [0, 0, 1, 1, 1],
        [0, 1, 0, 0, 1]])

现在使用标准Networkx构造函数将NumPy数组转换为Networkx图,用于有向图,DiGraph

>>> G1 = NX.DiGraph(G)

>>> len(G1.nodes())
      5
>>> type(G1)
      <class 'networkx.classes.digraph.DiGraph'>

您可以从邻接矩阵创建无向图,而不是有向图;只需使用适当的构造函数Graph

>>> G2 = NX.Graph(G)

这个图形在Matplotlib中呈现,与上面的图形完全相同 – 通过调用Networkx的draw方法然后调用Matplotlib的show来在屏幕上呈现它.

>>> NX.draw(G2)
>>> MPL.show()

标签:python,graph,graph-theory,numpy
来源: https://codeday.me/bug/20190621/1249887.html