我在图(R中)中绘制了一个生物运输网络,我想根据边缘属性(在我的例子中是一个称为“宽度”的连续变量)在颜色渐变中显示边缘。我不喜欢在以下位置获得的默认调色板:
plot(graph, edge.color=E(graph)$width)
查看igraph plot帮助,我发现了一种使用cscale包中的cscale更改此调色板的方法:
plot(graph,
edge.color=cscale(E(graph)$width,palette = seq_gradient_pal(low = "yellow",high = "red")))
这很好用,而且可能会坚持下去。然而,我想知道我是否可以使用viridis或colorbrewer调色板。我还没想好怎么做。主要的问题是我不能设法将颜色编码分配给所有的边。例如,如果我这样做:
plot(graph,
edge.color=cscale(E(graph)$width,palette = viridis_pal())
我得到这样的警告:
In seq.default(begin, end, length.out = n) :
first element used of 'length.out' argument
实际上,第一种颜色应用于所有边缘
如果我尝试指定所有边的长度:
plot(graph,
edge.color=cscale(E(graph)$width,palette = viridis_pal()(ecount(graph))
我收到这个错误消息:
Error in palette(x) : invalid argument type)
有什么想法吗?
转载请注明出处:http://www.songfuwangmfj.com/article/20230526/1460832.html