Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 可以从NetworkX布局中可视化图形,如;“三月疯狂”;支架_Python_Graph_Graphviz_Networkx_Visualize - Fatal编程技术网

Python 可以从NetworkX布局中可视化图形,如;“三月疯狂”;支架

Python 可以从NetworkX布局中可视化图形,如;“三月疯狂”;支架,python,graph,graphviz,networkx,visualize,Python,Graph,Graphviz,Networkx,Visualize,我试图将python中的锦标赛定向图可视化为networkx对象。理想情况下,如果我能想象它类似于NCAA经典的“三月疯狂”括号,那就太好了。到目前为止,我最接近的是使用点布局,但它不是很直观,看起来根本不像括号 我有一个单独的图形,但可以将其分解为4个子图(三月疯狂的设置方式),如果这样可以使可视化效果更好的话 下面是我正在寻找的布局示例(或其附近的内容) (来源:) 这是我到目前为止得到的,它需要改进,但你会认为它是一个糟糕的图形表示。 下面是我现在用来构建图形并将其输出到图像的一段代码

我试图将python中的锦标赛定向图可视化为networkx对象。理想情况下,如果我能想象它类似于NCAA经典的“三月疯狂”括号,那就太好了。到目前为止,我最接近的是使用点布局,但它不是很直观,看起来根本不像括号

我有一个单独的图形,但可以将其分解为4个子图(三月疯狂的设置方式),如果这样可以使可视化效果更好的话

下面是我正在寻找的布局示例(或其附近的内容)
(来源:)

这是我到目前为止得到的,它需要改进,但你会认为它是一个糟糕的图形表示。

下面是我现在用来构建图形并将其输出到图像的一段代码:

def buildTourneyGraph(games,analysisYear):
    MG=nx.DiGraph()

    #for  idx, gm in enumerate(games):    # Iterate through rows
    for  gm in games:    # Iterate through rows
        #pp.pprint(gm)
        if gm["academicYear".upper()] == int(analysisYear):

            #add the two team nodes
            MG.add_node(gm["winner".upper()])
            MG.add_node(gm["loser".upper()])
            MG.add_edge(gm["loser".upper()], gm["winner".upper()], weight=gm["margin".upper()] , round=gm["round".upper()])

    #Draw a graph and save it to a PNG file
    #nx.draw_spectral(MG)

    #nx.draw_graphviz(MG)
    #nx.draw_shell(MG)

    # same layout using matplotlib with labels
    plt.title("NCAA Tourney for " + str(analysisYear))
    pos=nx.graphviz_layout(MG,prog='dot')
    nx.draw(MG,pos,with_labels=True,arrows=True,node_size=20,node_color="red")



    outputGraphFile = os.path.expanduser('C:/Users/myUser/Documents/graph_tourney_' + str(analysisYear) + '.png')
    plt.savefig(outputGraphFile)    

只需要自己定义节点位置,而不是使用内置代码,这将非常简单。@Joel-我该怎么做,或者在哪里传递它们?我假设你在graphviz中谈论“点列表”,但我似乎找不到一个好的例子来具体说明如何实现这一点。也许我的google fu不太靠谱。看看
pos
被定义为什么(打印出来)-它是一本字典,给出了每个节点的位置。所以你可以定义它。这仍然需要一些工作,但不会有任何内置的东西来完成这样一个专门的安排。只需自己定义节点位置而不是使用内置代码就相当简单了。@Joel-我该如何做,或者在哪里传递它们?我假设你在graphviz中谈论“点列表”,但我似乎找不到一个好的例子来具体说明如何实现这一点。也许我的google fu不太靠谱。看看
pos
被定义为什么(打印出来)-它是一本字典,给出了每个节点的位置。所以你可以定义它。这仍然需要一些工作,但不会有任何内置的东西来做这样一个专门的安排。