Does the following do what you want? WeightedGraph[edges_, weights_, options___]:= Block[{maxweight=Max[#[[2]]&/@weights]}, Graph[edges,VertexSize->((#[[1]]->0.9*#[[2]]/maxweight)&/@weights),options]] WeightedGraph[{1 \[UndirectedEdge] 2, 2 \[UndirectedEdge] 3, 3 \[UndirectedEdge] 1, 3 \[UndirectedEdge] 4}, (*weights:*) {1 -> 1.1, 2 -> 1.2, 3 -> 1.3, 4 -> 1.4}] ![Mathematica graphics](https://i.sstatic.net/crtZt.png) The second line is basically your `Graph` call, except that it uses `WeightedGraph` instead of `Graph`, and the weights don't have `VertexSize->` in front of them.