在使用cairo PDF绘制的python igraph中,曲线边缘由edge_curved = X
或autocurve = True
设置,边缘在PDF输出中不可见。同样代表PNG。箭头和所有其他图形元素都是可见的。将边缘设置为直线,它们变得可见。这是一个最小的例子:
import igraph
g = igraph.Graph.Erdos_Renyi(n = 23, m = 123)
igraph.plot(g, autocurve = True, edge_width = 0.02)
答案 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表面。