I want to add a new vertex to a graph, with fixed VertexCoordinates but when I use VertexAdd, the new graph does not have the VertexCoordinates of the previous one.

g = Graph[{1 -> 2}, VertexCoordinates -> {{0, 0.5}, {0.5, 0}}, 
  PlotRange -> 1]

This is the initial graph

g = VertexAdd[g, 3]

Adding a new vertex makes a new graph with automatic coordinates.

I tried to see if there is a way to define the coordinates when adding a new vertex but I could not find anything.

Also I was looking if there is something like:

SetProperty[g, VectorCoordinates -> {list of coordinates}]

To set coordinates for all vertices in a graph, but I could not find anything.


1 Answer 1


Here is your Graph

g = Graph[{1 -> 2}, VertexCoordinates -> {{0, 0.5}, {0.5, 0}},PlotRange -> 1]

You can try this!

g = SetProperty[VertexAdd[g, {3, 4}],
VertexCoordinates-> PropertyValue[g, VertexCoordinates]~Join~{{.7, .6}, {-.2, -.3}}];

The graph will retain its VetexCoordinates

EdgeAdd[g, 1 -> 4]

enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.