2024-10-17 06:29:34 发布
网友
在使用cairopdf绘制python igraph时,由edge_curved = X或{}设置的曲线边,在PDF输出中不可见。同样代表巴布亚新几内亚。箭头和所有其他图形元素都可见。将边缘设置为笔直,它们就会变得可见。下面是一个最小的例子:
edge_curved = X
import igraph g = igraph.Graph.Erdos_Renyi(n = 23, m = 123) igraph.plot(g, autocurve = True, edge_width = 0.02)
边缘宽度小于0.051时,曲线边始终不可见。实际上,所有边缘宽度>;=0.051和<;1.0在PDF中看起来都是一样的,可能1.0以下的数字向上取整,<;=0.05四舍五入到0.0。在PNG图上,边缘宽度的这一范围存在明显差异。在
所以解决方案是至少使用edge_width = 0.051绘制曲线边。有趣的是,直边在边宽度0.051以下仍然可见,但它们看起来不会变薄,宽度似乎四舍五入到1.0。在pythonigraph的源代码中可以看到,edge.width直接传递给cairo.Context.set_line_width()。我在很多地方看到了后者,在1.0以下的浮动中使用,结果可能取决于实际的cairo曲面。在
edge_width = 0.051
edge.width
cairo.Context.set_line_width()
边缘宽度小于0.051时,曲线边始终不可见。实际上,所有边缘宽度>;=0.051和<;1.0在PDF中看起来都是一样的,可能1.0以下的数字向上取整,<;=0.05四舍五入到0.0。在PNG图上,边缘宽度的这一范围存在明显差异。在
所以解决方案是至少使用
edge_width = 0.051
绘制曲线边。有趣的是,直边在边宽度0.051以下仍然可见,但它们看起来不会变薄,宽度似乎四舍五入到1.0。在pythonigraph的源代码中可以看到,edge.width
直接传递给cairo.Context.set_line_width()
。我在很多地方看到了后者,在1.0以下的浮动中使用,结果可能取决于实际的cairo曲面。在相关问题 更多 >
编程相关推荐