So beschriften Sie Graph Edges mit ihren Gewichten

7

Warnung! Ich habe die Frage gestellt, als Mathematica v 8.0 das coolste Kind war. Der Fehler wurde ab Version 9.0.1 behoben.

The help for EdgeLabels gibt Folgendes an:

Allerdings:

%Vor%

Ergebnisse in:

Also, keine Edge-Labels ... Ich denke, es ist ein Bug.

Ich habe ein ekliges Konstrukt wie:

verwendet %Vor%

Bessere Ideen?

    
Dr. belisarius 11.09.2011, 20:38
quelle

4 Antworten

9

Für eine normale GraphPlot benötigen Sie eine etwas kompliziertere Lösung mit EdgeRenderingFunction ( Dokumentation ). Angenommen, Sie haben eine Adjazenzmatrix, in der die Elemente auch die (gerichteten) Gewichte sind.

%Vor%

Hier sind einige Beschriftungen für die Vertices, vorausgesetzt, Sie zeichnen Netzwerkdiagramme für internationale Interbankenaufnahmen (das Original hat viel mehr Länder!).

%Vor%

Folgendes tut, was Sie brauchen. Die Tricks sind der Verweis auf die Adjazenzmatrix unter Verwendung der Teile von #2 innerhalb der Teilespezifikation, um auf die korrekten Elemente von nums zu verweisen, und die Mean[#1] , um das Etikett am Mittelpunkt der Kante zu lokalisieren. Der Slot #1 scheint die Koordinaten der Scheitelpunkte zu enthalten.

%Vor%

    
Verbeia 12.09.2011, 10:25
quelle
5

EdgeLabels - & gt; "EdgeWeight" funktioniert immer noch nicht in 8.0.4 und scheint nicht mehr in der Dokumentation zu sein. Hier ist jedoch eine Lösung, die funktioniert:

%Vor%     
Todd Johnson 25.02.2012 20:22
quelle
4

EdgeLabels funktioniert einwandfrei. EdgeWeights nicht.

Aus Belisarius 'zweitem Beispiel mag es bereits offensichtlich sein, dass das Problem bei EdgeWeights nicht EdgeLabels

liegt

Hier sind einige zusätzliche Beweise. EdgeLabels zeigt sehr gerne eine Vielzahl von Etiketten an. Aber wenn du mma anforderst, "EdgeWeights" anzuzeigen, zeigt es fälschlicherweise 1 an, egal was du dort gespeichert hast.

%Vor%

Der Fehler ist nicht auf CompleteGraph beschränkt. Graph und GridGraph haben das gleiche Problem.

    
DavidC 14.09.2011 01:12
quelle
3

Die Lösung ist einfach. Upgrade auf V 8.0.1:)

Zumindest habe ich das und es funktioniert dort. (Windows 7)

Übrigens, ich weiß nicht, ob die Beschriftungen an den Kanten korrekt sind, aber zumindest tut es das setzen Sie sie auf die Figur, anders als Ihr Bild).

    
Nasser 12.09.2011 06:32
quelle