0

我正在使用Python graphviz 库,并且我的节点使用 HTML 格式化。

我的 python 代码生成这个节点:
MyNode [label=<{Topic|<b>SubHeader</b>|field1: int<BR/>fields: dict<BR/>}>]

在此处输入图像描述

我想左对齐最后一个(字段)部分的文本。

如何仅为最后一部分添加对齐说明?

Graphviz 支持添加\l作为理由转义码,但它似乎不适用于 HTML 格式的节点。
同样,我无法弄清楚如何将<p>标签添加到 HTML 代码中。

4

2 回答 2

1
  • 您未能证明您已将节点形状设置为 Mrecord。没有这些信息很难理解你在做什么。下一次,请包括一个完整的点程序。
  • 哇,您正在混合记录形状和 HTML 文本。我很惊讶这甚至是合法的。好像,太酷了!
  • \l、\r、\c 在 HTML 文本中似乎不合法(https://graphviz.org/docs/attr-types/lblString/
  • 好消息:<BR ALIGN="LEFT"/>是合法的。所以:
graph {
  node [shape=Mrecord]
  MyNode [label=<{Topic|<b>SubHeader</b>|field1: int<BR ALIGN="LEFT"/>fields: dict<BR ALIGN="LEFT"/>}>]
}

产生:
在此处输入图像描述

ps<P>不是合法的 Graphviz 语法。请参阅https://graphviz.org/doc/info/shapes.html(Graphviz 使用类似 HTML 的语法。强调-like
pps 考虑使用实际的类似 HTML 的记录。他们给予更多的控制。

于 2021-11-23T22:53:02.387 回答
1

3 个版本,2 个使用类似 html 的记录:

graph {
  node [shape=Mrecord]
  MyNode [label=<{Topic|<b>SubHeader</b>|field1: int<BR ALIGN="LEFT"/>fields: dict<BR ALIGN="LEFT"/>}>]

  node [shape=plaintext]
  MyNodeA [label=<<table style="rounded">
       <tr><td border="0">Topic</td></tr>
       <hr/>
       <tr><td border="0"><b>SubHeader</b></td></tr>
       <hr/>
       <tr><td border="0" align="left">field1: int</td></tr>
       <tr><td border="0" align="left">fields: dict</td></tr>       
       </table>>]

  MyNodeB [label=<<table style="rounded">
       <tr><td border="0">Topic</td></tr>
       <hr/>
       <tr><td border="0"><b>SubHeader</b></td></tr>
       <hr/>
       <tr><td border="0" align="left" balign="left">field1: int<br/>fields: dict</td></tr>       
       </table>>]
}

给予:
在此处输入图像描述

于 2021-12-10T00:25:59.707 回答