Graph Tool的edge_gradient属性

时间:2016-09-16 05:47:12

标签: python plot graph graph-tool

我想在图表工具的edge_gradient上使用gt.graph_draw()属性,以便更好地可视化图表中的连接方向,这些图表对于箭头等标记来说过于拥挤。

根据文档中的描述,似乎这是该属性应该执行的操作。但是,目前它只允许我将边缘设置为纯色。

我正在使用这样的属性:

egradient = g.new_edge_property('vector<double>')
g.edge_properties['egradient'] = egradient
e = g.add_edge(v1, v2)
egradient[e] = (0.9, 0.329,0.282,0.478,1)
...
gt.graph_draw(g, ... edge_gradient=g.edge_properties["egradient"])

如果修改(0.9, 0.329,0.282,0.478,1)中的第一个值,外观保持不变 - 如果我尝试传递一个元组列表,我会从图形工具内部得到这个:

TypeError: float() argument must be a string or a number

如何在图表工具中实现我想要的东西?如果我不能,那么边缘渐变5元组中的第一个值还有什么用呢?

1 个答案:

答案 0 :(得分:0)

edge_gradient实际上需要一个整数列表,而不是元组列表。我一开始犯了同样的错误。

示例:如果要从白色变为黑色,则`edge_gradient参数应如下所示:

#              o  r  g  b  a  o  r  g  b  a
edge_gradient=[0, 1, 1, 1, 1, 1, 0, 0, 0, 1]

这就是文档的含义,&#34; 每组5个元素被解释为[o, r, g, b, a],其中o[0, 1]范围内的偏移量其余值指定颜色

阅读起来有点困难,所以我将我的停止点分开并将它们格式化为:

#              offset  r  g  b  a
edge_gradient=[0,      1, 1, 1, 1, \
               0.5,    0, 0, 0, 1, \
               1,      1, 0, 0, 1]

从白色到黑色再到红色。 ......理论上,至少。我无法让edge_gradient使用两个以上的渐变停止点。我总是最终得到一些颜色,就像我传递给edge_gradient属性的列表一样,其余部分有奇怪的行为,比如在中间有最终颜色。