gpt4 book ai didi

graphviz - 如何使用 GraphViz 分离节点的图片和标签?

转载 作者:行者123 更新时间:2023-12-05 01:14:19 24 4
gpt4 key购买 nike

我正在尝试使用 GraphViz 显示带有图像和标签的图表。我想在图像下显示标签(参见图表上的 labelloc="b" 选项),但不知何故它不起作用。标签和图像重叠。

知道我错过了什么吗?

以下是我正在使用的 DOT 代码和当前结果。

谢谢!

VizGraph with 3 nodes, background images and labels

digraph {
graph [compound=true, labelloc="b"];
node [shape=box];
edge [dir=none];

Label1[label="Label1",image="images/Avatar1.png"];
Label2[label="Label2",image="images/Avatar2.png"];
Label3[label="Label3",image="images/Avatar3.png"];

{
rank=same;
Label1 -> h0 -> Label2;
h0[shape=circle,label="",height=0.01,width=0.01];
}
{
h0_0;
h0_0[shape=circle,label="",height=0.01,width=0.01];
}

h0 -> h0_0;
h0_0 -> Label3;
}

最佳答案

UPD:你只需要添加一个 imagepos使用 height 为您的解决方案添加属性:

digraph {
graph [compound=true, labelloc="b"];
node [shape=box];
edge [dir=none];

Label1[
label="Label1"
height="2.1"
imagepos="tc"
labelloc="b"
image="images/Avatar1.png"
];
Label2[
label="Label2"
height="2.1"
imagepos="tc"
labelloc="b"
image="images/Avatar2.png"
];
Label3[
label="Label3"
height="2.1"
imagepos="tc"
labelloc="b"
image="images/Avatar3.png"
];

{
rank=same;
Label1 -> h0 -> Label2;
h0[shape=circle,label="",height=0.01,width=0.01];
}
{
h0_0;
h0_0[shape=circle,label="",height=0.01,width=0.01];
}

h0 -> h0_0;
h0_0 -> Label3;
}

结果:


或者您也可以使用 HTML-like labels ,特别是表格:

digraph {
graph [compound=true, labelloc="b"];
node [shape=box];
edge [dir=none];

Label1 [
shape=plain
label=<
<table cellspacing="0" border="0" cellborder="1">
<tr><td><img src="images/Avatar1.png" /></td></tr>
<tr><td>Label1</td></tr>
</table>
>
];
Label2 [
shape=plain
label=<
<table cellspacing="0" border="0" cellborder="1">
<tr><td><img src="images/Avatar2.png" /></td></tr>
<tr><td>Label2</td></tr>
</table>
>
];
Label3 [
shape=plain
label=<
<table cellspacing="0" border="0" cellborder="1">
<tr><td><img src="images/Avatar3.png" /></td></tr>
<tr><td>Label3</td></tr>
</table>
>
];

{
rank=same;
Label1 -> h0 -> Label2;
h0[shape=circle,label="",height=0.01,width=0.01];
}
{
h0_0;
h0_0[shape=circle,label="",height=0.01,width=0.01];
}

h0 -> h0_0;
h0_0 -> Label3;
}

代码有点复杂(乍一看),但作为奖励,您可以更灵活地控制边界。结果:

关于graphviz - 如何使用 GraphViz 分离节点的图片和标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58832678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com