代码之家  ›  专栏  ›  技术社区  ›  dapias

三维图形LightGraphs/GraphPlot/Julia或Networkx/Python

  •  0
  • dapias  · 技术社区  · 3 年前

    我想知道是否有可能在一个图形的二维表示上绘制一个垂直条。假设我有一棵树,我想和任何一个节点关联一个“势”,它可以表示为一个竖条。

    0 回复  |  直到 3 年前
        1
  •  1
  •   dschult    3 年前

    NetworkX可以使用matplotlib绘图工具来实现这一点,因为结果是一个matplotlib图形,您可以使用matplotlib在该图形的NetworkX绘图之上绘制任何其他您想要的图形。

    nx.draw(G)
    mpl.plot([xpt, xpt], [ymin, ymax], '--b')
    mpl.show()
    
        2
  •  0
  •   dapias    3 年前

    这是一个很小的例子,它实现了我想要的(在Python中):

    import networkx as nx
    import random
    from mpl_toolkits.mplot3d import Axes3D
    import matplotlib.pyplot as plt
    import numpy as np
    
    degree = 3
    N = 10
    g = nx.random_regular_graph(degree, N)
    
    
    fig = plt.figure(figsize=(10,7))
    ax = Axes3D(fig)
    
    
    for i,j in enumerate(g.edges()):
        x = np.array((positions[j[0]][0], positions[j[1]][0]))
        y = np.array((positions[j[0]][1], positions[j[1]][1]))
        ax.plot(x, y,  c='black', alpha=0.5)
    
    
    for key, value in positions.items():
        xi = value[0]
        yi = value[1]
        # Scatter plot
        ax.scatter(xi, yi, c= 'red')
        ax.bar3d(xi, yi, 0, 0.01, 0, random.random(), shade=False)
            
        
    ax.set_axis_off()
    

    它生成这种绘图,可以用来表示图形上的附加信息

    graph

    推荐文章