1

我想使用edge_gradientGraph Tool 上的属性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 元组中的第一个值实际上还有什么用?

4

1 回答 1

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]

这就是文档的意思,“每组 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属性的列表一样,其余的则有奇怪的行为,比如中间有最终颜色。

于 2017-10-27T00:13:30.760 回答