2015-04-14 71 views
1

在python igraph绘制cairo PDF时,曲线边缘由edge_curved = Xautocurve = True设置,边缘在PDF输出中不可见。同样代表PNG。箭头和所有其他图形元素都可见。直线设置边缘,它们变得可见。这里是一个简单的例子:为什么曲线边缘在igraph绘图中不可见?

import igraph 
g = igraph.Graph.Erdos_Renyi(n = 23, m = 123) 
igraph.plot(g, autocurve = True, edge_width = 0.02) 

回答

1

边缘宽度低于0.051的弯曲边缘总是不可见。实际上,所有边缘宽度> = 0.051和< 1.0在PDF上看起来都是一样的,可能低于1.0的数字会被四舍五入,并且< = 0.05四舍五入为0.0。在PNG图上,这个边缘宽度范围有明显的差异。

所以解决方案是至少使用edge_width = 0.051如果您绘制弯曲的边缘。有趣的是,直线边缘在边缘宽度0.051以下保持可见,但它们不会看起来更薄,宽度看起来被圆化为大约1.0。从python igraph的源代码可以看出,edge.width直接传递给cairo.Context.set_line_width()。我曾经在许多地方看到过这种情况,使用低于1.0的浮点数,结果可能取决于实际的cairo表面。