I have a Graph with multiple edges between two vertices. Of course, I want to label them differently. (Or, more generally, give them different properties such as weight or style).
Unfortunately, WL seems to treat multiple edges just like one edge. They get all the same labels. I cannot use EdgeLabels->{(from->to)->lbl, …} since this doesn’t distinguish between multiple edges. But even if I use Labeled[from->to,lbl] during the definition of the graph’s edges, multiple edges do not get different labels. See the following labels with two edges 1->2. hey get the same label, namely the first set.
This is actively being developed and will show up in version 12.1. At the moment the same edges can not be distinguished unfortunately. @Szabolcs Horvát might know a workaround
Note: Not a Wolfram employee but I only know from what I’ve seen in the live streams
I will try to insert additional artificial vertices into each of those multiple edges. This will of course change some properties of the graph, but I need it for visualization and some path calculations only. So this might be a workaround.
yields a self-inconsistent diagram: for the purposes of drawing the lines, the repeated edges are treated as distinct, while for the purposes of style and labeling they are treated as identical.
treats the repeated edges consistently as being distinct entities.
I am thankful that the EdgeTaggedGraph workaround is already present, but I remain troubled that Graph is internally inconsistent about whether the object is treated as a multigraph or not. It would have been more consistent to not introduce a new function (EdgeTaggedGraph) but rather to have an option to Graph, e.g. Multigraph->True or Multigraph->False or Multigraph->Automatic that would treat repeated edges in a consist way. But that’s water under the bridge.