# Trouble with plotting graphs in R [closed]

I have some graphs with latitude and longitude data for each vertex and attributes called "tobichi" and "sea" for each edge (essentially, whether to include the edge in plotting or not, presence of either indicating a no). I'm using igraph to visualize this and am writing my own functions to do so. Here's my code so far:

planar.embedding <- function(graph) { edge.incidence <- get.edgelist(graph) edges.x <- vector(length = (2 * ecount(graph))) edges.y <- vector(length = (2 * ecount(graph))) for (i in 1:ecount(graph)) { edges.x[2 * i - 1] <- get.vertex.attribute(graph, name="lon", index=edge.incidence[i, 1]) edges.y[2 * i - 1] <- get.vertex.attribute(graph, name="lat", index=edge.incidence[i, 1]) edges.x[2 * i] <- get.vertex.attribute(graph, name="lon", index=edge.incidence[i, 2]) edges.y[2 * i] <- get.vertex.attribute(graph, name="lat", index=edge.incidence[i, 2]) } edg <- get.edge.attribute(graph, name="tobichi", index=E(graph)) c <- get.edge.attribute(graph, name="sea", index=E(graph)) cedg <- c | edg zedg <- c(2 * which(cedg == TRUE), 2 * which(cedg == TRUE) - 1) edges.x <- edges.x[-zedg] edges.y <- edges.y[-zedg] return(cbind(edges.x, edges.y)) } planar.plot <- function(graph) { plot(x=get.vertex.attribute(graph, name="lon", index=V(graph)), y=get.vertex.attribute(graph, name="lat", index=V(graph))) lines(x=planar.embedding(graph)[, "edges.x"], y=planar.embedding(graph)[, "edges.y"]) }

Because of how `lines()`

works, edges.x and edges.y are twice as long as the number of edges in the graph, having one entry each for source and sink x and y coordinates. Here `edge.incidence[i, 1]`

gets the source vertex, and `edge.incidence[i, 2]`

gets the sink vertex (of edge i).

The problem is that this works on some graphs but not others. Interestingly enough, when I omit lines 10-15 in `planar.embedding`

everything works fine. What could be going wrong here?