如何在dot语言(Graphviz)中给文本加删除线

16
我正在尝试找出如何在基于点的graphviz图表中对节点中的一些文本进行strike-through。 我查看了此页面,但无法弄清楚:http://www.graphviz.org/doc/info/attrs.html。 在谷歌上搜索也没有帮助。 请考虑此图表,这些基本上是来自bugzilla的错误编号。 红色节点表示关闭的错误,但我不想像这样对它们进行颜色编码。 显然,被划掉的511272比红色节点511272更直观易懂。

enter image description here

如果有人知道如何在节点内划掉文本,请分享。 谢谢, Shobhit
2个回答

17

Graphviz本身没有样式来完成这个功能,但由于它使用Unicode,您可以使用维基百科条目“strikethrough”建议的“组合长横线覆盖符号(U+0336)”和组合字符来实现:

在不能使用标记的纯文本场景中,Unicode提供了许多组合字符来达到类似的效果。 “长横线覆盖”(U+0336)会在文本上产生一条不间断的横线。

  • 分开:A̶B̶C̶D̶E̶F̶G̶H̶I̶
  • 组合:A̶B̶C̶D̶E̶F̶G̶H̶I̶

这张图:

digraph G {
    a [label="1̶2̶3̶4̶5̶"]
    b [label="54321"]
    a->b
}

使用graphviz 2.23.6呈现此png输出:

带有Unicode删除线的graphviz示例


哦,天啊,答案就在我眼前,但我没看到它。你太棒了!谢谢,这解决了我上周以来一直卡住的问题。接受你的答案。 - bits
这里有一个很好的网络应用程序,可以生成三种不同格式的删除线字符:https://yaytext.com/strike/ - nofinator

3
另一个选择是使用类似HTML的标签:HTML-like labels:
digraph G {
    a [label=<<s>12345</s>>]
    b [label="54321"]
    a->b
}

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接