使用graphviz在类似kcachegrind的标签中创建百分比条

我正在尝试使用graphviz创建类似于kcachegrind的调用图。参见例如

使用graphviz在类似kcachegrind的标签中创建百分比条

我想我可以使用带有两个单元格的行的表格创建百分比栏,设置它们的大小和背景色。这种工作方式除外,默认情况下它将使条形图与最宽的列(功能标签)一样宽。如果我添加fixedsize="TRUE",则单元格将达到预期的宽度,但是现在在单元格之间插入了空格,以使总宽度仍等于表的总宽度。我还尝试了嵌套表,但这似乎给出了相同的结果。 cellspacing(0)似乎只影响垂直间距。

我看了看kcachegrind的源代码。他们似乎只是保留一条线并自己做百分比栏(解析点布局信息并直接在画布上绘制节点)。这表明在graphviz中可能无法执行此操作。我可以选择的相关解决方案是后期处理 SVG,但这看起来很丑...

lk38264945 回答:使用graphviz在类似kcachegrind的标签中创建百分比条

您可以在单元格的bgcolor属性中使用colorList来模仿进度条。

示例:

digraph {
    example1 [
        shape=plain
        label=<
            <table cellborder="0" cellspacing="5">
                <tr><td colspan="2">Title</td></tr>
                <tr><td border="1" width="50" bgcolor="#6da8ce;0.25:white"></td><td color="white">25%</td></tr>
            </table>
        >
    ]

    example2 [
        shape=plain
        label=<
            <table cellborder="0" cellspacing="5">
                <tr><td colspan="2">Title</td></tr>
                <tr><td border="1" width="50" bgcolor="#6da8ce;0.71:white"></td><td color="white">71%</td></tr>
            </table>
        >
    ]
}

结果:

result

本文链接:https://www.f2er.com/3037589.html

大家都在问