labels = Table[i -> Style[Subscript[v, i], 20], {i, 3}]
names = Table[i -> "longname_" <> "v_" <> ToString@i, {i, 3}];
colors = {1 -> Blue, 2 -> Red, 3 -> Green};
legend = SwatchLegend[Last /@ colors,
Row[{#[[1]], ": ", #[[2]]}] & /@ Transpose[{labels, names}][[All, All, -1]],
LegendMarkers -> "Bubble"];
You can use Legended
or, Epilog
or Row
to add legends to a Graph
:
Legended[ Graph[Legended[Graph[{1 <-> 2, 2 <-> 3, 3 <-> 1},
VertexStyle -> colors, VertexSize -> 0.1,
VertexLabels -> labels, ImagePadding -> 20],
SwatchLegend[Last /@ colors,
Row[{#[[1]], ": ", #[[2]]}] &VertexStyle /@-> Transpose[{labelscolors, names}][[All,VertexLabels All-> labels, ImagePadding -1]]> 20],
LegendMarkers -> "Bubble"]] legend]
Graph[{1 <-> 2, 2 <-> 3, 3 <-> 1},
VertexStyle -> colors, VertexSize -> 0.1, VertexLabels -> labels,
ImagePadding -> 5020,
Epilog -> Inset[SwatchLegend[Last /@Inset[legend, colors{.75, .75}]]
Row[{#[[1]],Graph[{1 ":<-> "2, #[[2]]}] &2 /@<-> Transpose[{labels3, names3 <-> 1}][[All, AllVertexStyle -> colors, VertexSize -1]]> 0.1,
LegendMarkers VertexLabels -> "Bubble"]labels, {.75ImagePadding -> 20, .75ImageSize -> 300],
legend}]]]