【问题标题】:overlapping transparent edges in networkx在networkx中重叠透明边缘
【发布时间】:2021-10-31 22:16:46
【问题描述】:

我在 networkx 中有一个图,其中有许多将重叠的边。我试图使它们透明,以便边缘的积累会形成更深的颜色,但是尽管许多边缘重叠,它们仍然是相同的浅色。例如有一个边缘:

import networkx as nx
import matplotlib.pyplot as plt
import matplotlib.lines as mlines

G = nx.Graph()

colorlist = []
G.add_edge(1,2)

# explicitly set positions
nodes = {1: (1,0),
2: (0,1)}

nx.draw_networkx(G, nodes, alpha=0.1)
ax = plt.gca()
plt.axis("off")
plt.show()

这给出了一条微弱的线

但是当六条透明线相互叠加时

import networkx as nx
import matplotlib.pyplot as plt
import matplotlib.lines as mlines

G = nx.Graph()

colorlist = []
G.add_edge(1,2)
G.add_edge(1,2)
G.add_edge(1,2)
G.add_edge(1,2)
G.add_edge(1,2)
G.add_edge(1,2)

# explicitly set positions
nodes = {1: (1,0),
2: (0,1)}

nx.draw_networkx(G, nodes, alpha=0.1)
ax = plt.gca()
plt.axis("off")
plt.show()

看起来一模一样

为什么将透明线相互叠加不会产生较暗的线,我怎样才能做到这一点?

【问题讨论】:

    标签: python matplotlib graph networkx


    【解决方案1】:

    您需要使用MultiGraph 而不是Graph。否则,即使您多次添加,您的图表仍将只包含一条边。

    以下将创建具有“较暗”边缘的所需图像:

    G = nx.MultiGraph()
    
    colorlist = []
    G.add_edge(1,2)
    G.add_edge(1,2)
    G.add_edge(1,2)
    G.add_edge(1,2)
    G.add_edge(1,2)
    G.add_edge(1,2)
    
    # explicitly set positions
    nodes = {1: (1,0),
    2: (0,1)}
    
    nx.draw_networkx(G, nodes, alpha=0.1)
    ax = plt.gca()
    plt.axis("off")
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-10
      • 2014-05-22
      • 1970-01-01
      • 2018-04-16
      • 2023-02-25
      • 2022-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多