【发布时间】:2020-10-25 18:16:32
【问题描述】:
我正在 igraph(在 R 中)中绘制一个生物传输网络,我想在基于边缘属性(在我的例子中是一个称为“宽度”的连续变量)的颜色渐变中显示边缘。我不喜欢在以下获得的默认调色板:
plot(graph, edge.color=E(graph)$width)
查看 igraph 绘图帮助,我找到了一种使用 scales 包中的 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)
有什么想法吗?
【问题讨论】:
-
请提供一个可重现的例子stackoverflow.com/questions/5963269/…