绘制图形

时间:2019-04-09 19:16:07

标签: r igraph

我想在一个绘图上打印两个顶点名称。怎么做? 我有两个数据框。

我尝试用绘图代码给出它:

vertex.label=c(V(siec_ace_2)$inequality,V(siec_ace_2)$ID) 

但它不起作用。

data_con<-data.frame(
  "ID"=c("J","E","H","A","F","B","G","I","D","C"),
  "inequality"=c("13w+11x+8y+11z<=M","13w+12x+10y+9z<=M","13w+7x+8y+10z<=M"
          ,"12w+11x+12y+8z<=M","9w+7x+9y+12z<=M","7w+7x+10y+8z<=M"
          ,"8w+12x+8y+7z<=M","9w+13x+9y+7z<=M","7w+8x+13y+11z<=M","13w+7x+11y+10z<=M")
)

data_edges<-data.frame(
  "from"=c("J","J","E","E","E","H","H","H","A","A","A","F",
           "B","B","B","B","G","G","G","G","G","G","I","I","I","D","D","C","C"),
  "to"=c("H","G","J","A","F","E","A","B","J","F","B","E",
           "H","A","G","D","J","H","A","B","D","C","F","G","C","B","G","G","I"),
  "value"=c(4,9,4,4,4,5,4,2,6,3,6,5,3,5,5,3,8,4,5,4,2,5,8,6,3,2,3,3,3)
)

siec_ace <- graph_from_data_frame(d = data_edges , vertices= data_con, directed=T)
siec_ace_2 <- simplify(siec_ace, remove.multiple = F, remove.loops = T) 
plot(siec_ace_2, edge.arrow.size=.5, vertex.label.color="gray10", 
  edge.label = E(siec_ace_2)$value, 
  vertex.label = c(V(siec_ace_2)$inequality, V(siec_ace_2)$ID)  )

此代码仅绘制一个值。我需要两个值:不等式和ID。

谢谢。

1 个答案:

答案 0 :(得分:0)

一个顶点在图中只能有一个标签。您可以根据需要paste()将不同的值组合在一起以组合值。在这里,我在第二行中的值之间添加了换行符。另外,我认为您想要的是节点名称而不是ID

plot(siec_ace_2, edge.arrow.size=.5, vertex.label.color="gray10", 
     edge.label = E(siec_ace_2)$value, 
     vertex.label = paste(V(siec_ace_2)$inequality, V(siec_ace_2)$name, sep="\n")  )