按原点节点arcplot{arcdiagram}指定弧颜色

按原点节点arcplot{arcdiagram}指定弧颜色,r,igraph,arc-diagram,R,Igraph,Arc Diagram,我有一个手动指定节点顺序的arcplot。我曾希望通过手动指定列表来设置弧颜色。但是,颜色不与节点对齐: 其中红色、蓝色和绿色之前定义为: red <- "firebrick1" green <- "green3" blue <- "DodgerBlue" color.names <- setNames(c(red, red, red, red, red,red,red,red,red,red,red,red, blue, blue, blue, blue, blue,

我有一个手动指定节点顺序的arcplot。我曾希望通过手动指定列表来设置弧颜色。但是,颜色不与节点对齐:

其中红色、蓝色和绿色之前定义为:

red <- "firebrick1"
green <- "green3"
blue <- "DodgerBlue"

color.names <- setNames(c(red, red, red, red, red,red,red,red,red,red,red,red, blue, blue, blue, blue, blue, blue, blue, blue,  blue, blue, blue, blue, blue, blue, blue, blue, blue, blue, blue, blue, blue, blue, blue,green, green , green, green ), c("OVB", "OVB-ENV", "OVB-ENV-MO", "OVB-MO", "OVB-MO-ENV", "ENV-MO", "ENV", "ENV-OVB", "ENV-MO-OVB", "MO","MO-ENV","MO-OVB", "intraverbal-tact", "intraverbal", "intraverbal-mand", "intraverbal-tact-mand","intraverbal-mand-tact", "intraverbal-echoic-mand", "intraverbal-echoic", "tact", "tact-mand", "tact-intraverbal", "tact-intraverbal-mand", "mand", "mand-tact", "mand-intraverbal", "mand-tact-intraverbal","echoic-tact", "echoic-intraverbal-mand", "echoic-intraverbal", "echoic-tact-mand","echoic-intraverbal-tact", "echoic-mand","echoic-mand-intraverbal", "echoic-tact-intraverbal","social", "social-physical", "physical-social", "physical"))

longer_order = c("OVB", "OVB-ENV", "OVB-ENV-MO", "OVB-MO", "OVB-MO-ENV", "ENV-MO", "ENV", "ENV-OVB", "ENV-MO-OVB", "MO","MO-ENV","MO-OVB", "intraverbal-tact", "intraverbal", "intraverbal-mand", "intraverbal-tact-mand","intraverbal-mand-tact", "intraverbal-echoic-mand", "intraverbal-echoic", "tact", "tact-mand", "tact-intraverbal", "tact-intraverbal-mand", "mand", "mand-tact", "mand-intraverbal", "mand-tact-intraverbal","echoic-tact", "echoic-intraverbal-mand", "echoic-intraverbal", "echoic-tact-mand","echoic-intraverbal-tact", "echoic-mand","echoic-mand-intraverbal", "echoic-tact-intraverbal","social", "social-physical", "physical-social", "physical"))
对于arcplot的(唯一的)要绘制的节点列表(来自边列表),是否有类似于igraph的get.edglist()的内容? 通过原点以编程方式添加边颜色的其他方法

要复制数据,请执行以下操作:

F1 <- structure(c("OVB", "OVB", "OVB", "OVB", "OVB-ENV", "OVB", "OVB","intraverbal-mand", "intraverbal-mand", "mand", "intraverbal","mand", "intraverbal-tact", "intraverbal", "mand-intraverbal","intraverbal-mand", "mand", "physical-social", "physical-social","social-physical"), .Dim = c(10L, 2L), .Dimnames = list(NULL,c("V1", "V2"))) 
F1类似这样的内容:

longer_order_match  <- order(match(unique(matrix(F1)), longer_order))
color.names_match <- color.names[match(unique(matrix(F1)), longer_order)]

arcplot(F1, ordering = longer_order_match, col.arcs = color.names_match)

longer\u order\u match是不应该在引号中的颜色:
setNames(c(“红色”、“红色”),…
而不是
setNames(c(红色,红色
?同样
col.names
应该是
颜色。名称
?个人观点,我停止使用arcplots是因为Google Vis软件包中的sankey,看看它是否适合你。1.如上所述,颜色变量red等之前已经定义,即红色不是“红色”2.使用Google Vis的Sankey图表看起来棒极了。我需要试一试。它们是在上面添加的,似乎structure命令没有忠实地复制顺序。
longer_order_match  <- order(match(unique(matrix(F1)), longer_order))
color.names_match <- color.names[match(unique(matrix(F1)), longer_order)]

arcplot(F1, ordering = longer_order_match, col.arcs = color.names_match)