图形工具的边梯度特性

2024-09-30 18:31:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用Graph工具edge_gradientgt.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元组中的第一个值还有什么用呢?你知道吗


Tags: 工具标记gt图形属性可视化properties箭头
1条回答
网友
1楼 · 发布于 2024-09-30 18:31:44

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

示例:如果要从白色变为黑色,则“edge\u gradient”参数应如下所示:

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

这就是docs的意思,“每组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处理两个以上的渐变停止点。我总是有一些边缘颜色,比如我传递给{{CD1}}属性的列表,其余的都有奇怪的行为,比如中间有最终的颜色。你知道吗

相关问题 更多 >