为什么曲面边缘在igraph绘图中是不可见的?

时间:2015-04-14 09:23:49

标签: python igraph cairo

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

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

1 个答案:

答案 0 :(得分: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表面。