GraphViz画图--用图片代替node的形状


有两种方法可以用图片代替node的默认形状

node有两个属性 shapefile image,这两个属性都可以改变node原有的形状,变成我们自己加载的图片。
一、使用shapefile属性

digraph g
{
B[shapefile="D:/2.png"];
A->B;
}
生成的图片:


shapefile是图片存放的路径,可以看到图片已经出现了,但是node却仍有黑色的边框,下面我们去掉边框:

digraph g
{
	B[shapefile="D:/2.png",color=white,style=filled];
	A->B;
}
设置color=white,style=filled的作用是去掉图片的边框,将整个矩形区域填充为白色,这样就没有边框了。


二、使用image属性

digraph g
{
	B[image="D:\2.png",imagescale=both,shape=rectangle,style=filled,color=white;];
	A -> B;
}
效果与使用shapefile一样。

这两种的区别在于使用shapefile属性时,节点的形状被设定为矩形,而且图片也必须是矩形的;而使用image属性时,图片仅仅是被当做node的填充而并非成为整个node,所以,image属性可以被任意形状的节点填充,而不仅仅是矩形。

举个例子:

digraph g
{
	B[image="D:\2.png",imagescale=both,shape=circle];
	A -> B;
}
上面代码生成的图片:



图片被填充在圆形的区域中

而使用如下代码:

digraph g
{
	B[shapefile="D:/2.png",shape=circle];
	A->B;
}
生成的图片为:

我们可以看到虽然已经形状设置为circle圆形,但生成的node依然是box矩形。

你可能感兴趣的:(GraphViz)