Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
graphViz:如何为节点指定多个颜色_Graphviz - Fatal编程技术网

graphViz:如何为节点指定多个颜色

graphViz:如何为节点指定多个颜色,graphviz,Graphviz,我想为graphViz中的节点指定多种颜色。最佳解决方案是采用饼图格式的圆形节点 我知道一种方法是使用HTML标记。以下是一个简单的例子: graph G{ 1--2; 1[shape=none,margin=0,label=< <table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4"> <tr> <td bgcolor=

我想为graphViz中的节点指定多种颜色。最佳解决方案是采用饼图格式的圆形节点

我知道一种方法是使用HTML标记。以下是一个简单的例子:

graph G{
    1--2;
    1[shape=none,margin=0,label=< 
    <table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4"> 
        <tr>
            <td bgcolor="red"></td>
            <td bgcolor="blue"></td>
        </tr>   
     </table>         >];
    2[shape=circle,style=filled,fillcolor=yellow];
    3[shape=circle,style=filled,fillcolor=yellow];
}
图G{
1--2;
1[形状=无,边距=0,标签=<
>];
2[形状=圆形,样式=填充,填充颜色=黄色];
3[形状=圆形,样式=填充,填充颜色=黄色];
}
然而,存在一些问题:

  • 节点1没有标签(我希望它有标签“1”)

  • 将节点1连接到节点2的边未完全连接到节点1。换句话说,在节点1和将其连接到节点2的边之间有一个空间

  • 节点1是矩形的。我怎样才能有一个圆形节点


  • 如果无法克服这些问题,请您推荐其他图形可视化软件好吗?

    对于第一个问题,它实际上取决于双色节点的实现。本文介绍了多种解决方案:使用当前代码,添加标签的最简单方法是将其写入
    标记中,如以下代码所示:

    graph G{
        1--2;
        1[shape=none,margin=0,label=< 
        <table BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4"> 
            <tr>
                <td bgcolor="red">1</td>
                <td bgcolor="blue"></td>
            </tr>   
         </table>         >];
        2[shape=circle,style=filled,fillcolor=yellow];
        3[shape=circle,style=filled,fillcolor=yellow];
    }
    
    图G{
    1--2;
    1[形状=无,边距=0,标签=<
    1.
    >];
    2[形状=圆形,样式=填充,填充颜色=黄色];
    3[形状=圆形,样式=填充,填充颜色=黄色];
    }
    
    但是,它不会居中,我认为渐变节点更可取

    对于第二个问题,您需要在阵列单元上声明一个端口,并在绘制边时使用它们来锚定边:

    graph G{
        1[shape=none, label=< 
        <table MARGIN="0" BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4"> 
            <tr>
                <td bgcolor="red" port="L">1</td>
                <td bgcolor="blue" port="R"></td>
            </tr>   
         </table>         >];
        2[shape=circle,style=filled,fillcolor=yellow];
        3[shape=circle,style=filled,fillcolor=yellow];
        1:L--2;
    }
    
    图G{
    1[形状=无,标签=<
    1.
    >];
    2[形状=圆形,样式=填充,填充颜色=黄色];
    3[形状=圆形,样式=填充,填充颜色=黄色];
    1:L--2;
    }
    

    对于第三个问题,根据,您可以创建自定义形状。我不知道如何创建这样的圆形阵列,所以我认为您应该朝这个方向看。

    您可以通过

    graph G{
        1--2;
        1[shape=circle,style=wedged,fillcolor="red:blue"];
        2[shape=circle,style=filled,fillcolor=yellow];
        3[shape=circle,style=filled,fillcolor=yellow];
    }
    
    这种方法的优点是可以在一个节点中使用2种以上的颜色