Python中如何通过HTML格式实现Graphviz节点指定区域文本左对齐
解决方案
Graphviz中用<>包裹的HTML类标签格式的label,不支持普通record节点的\l对齐转义符,直接使用其支持的ALIGN属性即可实现指定区域的对齐控制,操作方法如下:
修改后的节点代码
仅需给最后一个fields分区的所有内容外层套上ALIGN属性为LEFT的<DIV>标签即可,不会影响前两个分区的默认居中效果:
MyNode [label=<{Topic|<b>SubHeader</b>|<DIV ALIGN="LEFT">field1: int<BR/>fields: dict<BR/></DIV>}>]
Python graphviz 代码示例
如果是通过Python代码动态生成节点,直接在拼接label时加入对应标签即可:
from graphviz import Digraph dot = Digraph() # 构造带左对齐规则的label内容 node_label = '<{Topic|<b>SubHeader</b>|<DIV ALIGN="LEFT">field1: int<BR/>fields: dict<BR/></DIV>}>' dot.node(name="MyNode", label=node_label)
注意事项
- Graphviz的HTML类标签语法大小写敏感,
ALIGN属性、DIV/BR等标签名建议使用全大写,避免出现识别异常 - 若需要更精细的对齐控制,也可使用
<TABLE>标签嵌套<TD ALIGN="LEFT">实现,效果和<DIV>方案一致
内容的提问来源于stack exchange,提问作者Adi Shavit
相关产品推荐
相关产品推荐

