首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为特定的边添加颜色?

如何为特定的边添加颜色?
EN

Stack Overflow用户
提问于 2014-07-22 03:59:25
回答 1查看 3.8K关注 0票数 0

我正在为如何给这里的特定边缘添加颜色而苦苦挣扎。比方说,我想在不重写其他边的情况下,从一条边到两条边用蓝色?另外,我想知道我们是否可以让箭头从一个节点指向另一个节点,而不是边的直线?

代码语言:javascript
复制
import networkx as nx
import matplotlib.pyplot as plt

G = nx.Graph()
class obj(object):
    def __init__(self,N,P):
        self.N = N
        self.P = P 
one   = obj(1,0.5)
two   = obj(2,0.4)
three = obj(3,0.3)
four  = obj(4,0.2)
G.add_node(one.N)
G.add_node(two.N)
G.add_node(three.N)
G.add_node(four.N)

G.add_edge(one.N,two.N)
G.add_edge(two.N,three.N)
G.add_edge(two.N,four.N)
G.add_edge(four.N,one.N)

nx.draw(G)
plt.show()
EN

回答 1

Stack Overflow用户

发布于 2014-07-22 04:07:04

您可以使用networkx.drawedge_color参数绘制具有不同颜色的边。下面是一个示例,其中您将第一个边颜色设置为红色,并通过传递列出每个边的颜色的“(1,2) (1,2)”将其他边设置为蓝色。在这个例子中,第一条边是红色的,而其他边是蓝色的。

代码语言:javascript
复制
nx.draw(G, pos=pos, edge_color=('r', 'b', 'b', 'b'))

如果你想在边上有箭头,你可以使用DiGraph (有向图)。你所要改变的就是:

代码语言:javascript
复制
G = nx.DiGraph()

然后你的边缘就会被引导。

如果希望箭头指向两个方向,则必须在每个方向上添加每个边,并更新边颜色元组(因为现在您有两倍的边):

代码语言:javascript
复制
# Add edges in each direction
G.add_edge(one.N,two.N)
G.add_edge(two.N,one.N)
G.add_edge(two.N,three.N)
G.add_edge(three.N,two.N)
G.add_edge(two.N,four.N)
G.add_edge(four.N,two.N)
G.add_edge(four.N,one.N)
G.add_edge(one.N, four.N)

# Draw the graph
pos = nx.spring_layout(G)
nx.draw(G, pos=pos, edge_color=('r', 'b', 'r', 'b', 'b', 'b', 'b', 'b'))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24873626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档