首页 > 解决方案 > 绘制节点有数据的图形

问题描述

我有一个包含一些复杂数据的有向图。我想绘制这个图并将每个节点表示为一个表。有没有办法做到这一点?

我发现的所有绘图示例都只有一个标签或一些简单的东西绘制到节点中。

仅供参考:我目前正在使用 networkx

在此处输入图像描述

标签: pythonnetworkxgraph-theorygraphvizgraph-visualization

解决方案


使用 graphviz 时,标签可以表示更复杂的东西,比如表格。

Graphviz 提供两种变体:

  1. 基于记录的节点

基于记录的节点提供了一种在标签中显示简单表格的简单方法:

node1[shape=record, label="{A|1 May|3 May|-1}|{1|2 May|4 May|2}"]

但是,不能添加样式属性(字体、颜色等)。

  1. 类似 HTML 的标签

类似 HTML 的标签使用类似 html 的标记来定义标签的外观,这允许复杂的表格包括样式信息,例如粗体、颜色、对齐方式,...

 node2[shape=none, label=<
 <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
    <TR>
        <TD><B>A</B></TD>
        <TD><B>1</B></TD>
    </TR>
    <TR>
        <TD>1 May</TD>
        <TD>2 May</TD>
    </TR>
    <TR>
        <TD>3 May</TD>
        <TD>4 May</TD>
    </TR>
    <TR>
        <TD>-1</TD>
        <TD>2</TD>
    </TR>
 </TABLE>
 >]

推荐阅读