首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎么画双色边呢?

我怎么画双色边呢?
EN

Stack Overflow用户
提问于 2018-07-28 16:44:37
回答 2查看 246关注 0票数 2

我目前正试图用Graphviz来表示一个图形,其中边有2种颜色。理想情况下,我想把每条边切成两种颜色,每种颜色半个颜色。

另一个限制是我必须使用RGB编码,就像在color="#4a52ff"中一样。我不能用color="black"的方式。

我尝试用一个:来分隔颜色标签,但是我得到的结果是一个双边。

下面是一个很小的例子:

代码语言:javascript
复制
import graphviz as gv

color1, color2 = "#3f7f3f", "#ff7f3f"
g = gv.Graph(format="png")
g.node("1", color=color1)
g.node("2", color=color2)
g.edge("1", "2", color="%s:%s" % (color1, color2))
g.render("tmp", view=True)

我得到了一个有两个节点和一个边的小图,但是单边看起来已经加倍了,每种颜色都有一个版本。我想要的是一个橙色端,连接到橙色节点,一个绿色端连接到绿色节点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-10 03:56:40

节点、边缘和图形属性-颜色页面中,如果指定分数,Graphviz支持边的着色。

这支持绘制相对边缘的常见情况,但使用平行样条而不是单独路由的多条边。如果使用任何分数,则按顺序绘制颜色,每种颜色都大致给定其指定的边缘分数。

在您的情况下,请更改以下行:

g.edge("1","2",color="%s:%s“% (color1,color2))

至:

代码语言:javascript
复制
 g.edge("1", "2", color="%s;%f:%s" % (color1, 0.5, color2))

它呈现如下:

票数 3
EN

Stack Overflow用户

发布于 2018-07-29 14:17:06

我最接近您想要的是在中间引入一个节点:

代码语言:javascript
复制
graph g
{
mid [shape=point ];
node1 [ color = "#3f7f3f"];
node2 [ color = "#ff7f3f"];
node1 -- mid [ color= "#3f7f3f"];
mid -- node2 [color = "#ff7f3f"];
}

这产生的结果与您所描述的相似:

现在,我只是使用GraphViz,而您使用的是python版本,但是这里的关键是,如果您选择使用它,则是中间节点,其他节点的颜色会到达它。

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

https://stackoverflow.com/questions/51573331

复制
相关文章

相似问题

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