sage: red_edges = [e for e in g.edge_iterator() if e[2] == -1]
sage: g.plot(edge_color='blue', edge_colors={'red': red_edges})
Launched png viewer for Graphics object consisting of 26 graphics primitives
我们也可以这样做:
sage: blue_edges = [e for e in g.edge_iterator() if e[2] != -1]
sage: red_edges = [e for e in g.edge_iterator() if e[2] == -1]
sage: g.plot(edge_colors={'blue': blue_edges, 'red': red_edges})
Launched png viewer for Graphics object consisting of 26 graphics primitives
sage: g = graphs.PetersenGraph()
sage: a = copy(g) # edges between vertices of different parity
sage: b = copy(g) # edges between vertices of same parity
sage: for u, v, c in g.edge_iterator():
....: if (u - v) % 2:
....: b.delete_edge(u, v)
....: else:
....: a.delete_edge(u, v)
sage: pa = a.plot(axes=False, edge_color='blue')
sage: pb = b.plot(axes=False, edge_color='red')
sage: p = pa + pb
sage: p.show()
Launched png viewer for Graphics object consisting of 37 graphics primitives
保存绘图:
sage: p.save('Petersen_graph_by_parity.png')
对于原始问题,使用if c == -1而不是
if (u - v) % 2决定是从b还是从a删除边。
另外,Petersen图已经设置了顶点位置,
这个问题中的图g可能不是这样,
在这种情况下,将定义pa和pb的两行替换为:
用不同的颜色绘制不同的边缘是圣人的天性!你知道吗
请参阅
edge_color
和edge_colors
方法的可选参数plot
中的图形打印选项表中列出的图形 "Graph plotting" page of the SageMath reference manual 这个例子说“这个例子展示了边的颜色”。你知道吗另请参见示例 the ^{} method of graphs 。你知道吗
为了说明实现所需着色的一种方法, 从彼得森图开始,用 如果它们连接不同奇偶性的顶点,则为1,否则为-1。你知道吗
观察结果:
要相应地绘制蓝色或红色的边,请执行以下操作:
我们也可以这样做:
这个答案的其余部分解释了我们如何用手来做这件事: 为每个边颜色创建一个子图,然后将这些子图绘制在一起。你知道吗
要说明这一点,请从彼得森图开始,并为边着色 取决于它们是否在相同奇偶校验的顶点之间。你知道吗
保存绘图:
对于原始问题,使用
if c == -1
而不是if (u - v) % 2
决定是从b
还是从a
删除边。 另外,Petersen图已经设置了顶点位置, 这个问题中的图g
可能不是这样, 在这种情况下,将定义pa
和pb
的两行替换为:这个答案的灵感来自 Thierry Monteil's answer 类似的问题:
相关问题 更多 >
编程相关推荐