Was ist der bequemste Weg, um Optionen für Graph [] - Objekte zu ändern?

  • Wie können Sie Optionen wie VertexLabels in vorhandenen Graph -Objekten am bequemsten ändern? (Hinweis für Benutzer der Version 7: Graph ist neu in Mathematica 8.)


    Bei Grafiken können wir Show dafür verwenden Unabhängig davon, welche Funktion ursprünglich zur Erstellung der Grafik verwendet wurde:

     g = Plot[Sin[x], {x, 0, 10}]
    Show[g, Axes -> False, Frame -> True]
     

    Gibt es eine analoge Funktion für Graph s? Angenommen, wir haben bereits ein Diagramm, und jetzt müssen Vertex-Beschriftungen auf andere Weise angezeigt werden.

    Hier ist eine Problemumgehung mit HighlightGraph:

     g = Graph[{1 -> 2}]
    HighlightGraph[g, {}, VertexLabels -> "Name"]
     

    Auch wenn dies funktioniert, ist HighlightGraph nicht wirklich das, wofür es bestimmt ist.


    Bitte beachten Sie, dass Graph Objekte atomar sind, bevor Sie versuchen, sie auseinander zu nehmen. Ich suche auch nach der sichersten und robustesten Lösung. Ich hoffe, es gibt eine Funktion, die ich übersehen habe.

    21 April 2012
    Mr.Wizard
3 answers
  • Sie könnten SetProperty verwenden. Zum Beispiel

     g = Graph[{1 -> 2, 2 -> 4, 3 -> 4}]
    
    SetProperty[g, VertexLabels -> {"Name", 2 -> "Two"}]
     

    Was ist der bequemste Weg, um Optionen für Graph [] - Objekte zu ändern? Was ist der bequemste Weg, um Optionen für Graph [] - Objekte zu ändern?

    15 January 2012
    EAMannAndrew
  • Sie können Graph selbst wie Show verwenden. Sie übergeben jedoch die wesentlichen Daten aus dem Diagramm als erstes Argument und nicht als Diagramm. (Graph[g,....] funktioniert nicht.)

     g = Graph[{1 -> 8, 1 -> 11, 1 -> 18, 1 -> 19, 1 -> 21, 1 -> 25, 1 -> 26}, 
        VertexLabels -> "Name", 
        ImagePadding -> 10]
    
    Graph[EdgeList[g], VertexShapeFunction -> "Diamond", VertexSize -> Medium]
     

    Was ist der bequemste Weg, um Optionen für Graph [] - Objekte zu ändern?

    Spezielle Arten von Grafiken, z TreeGraph, AdjacencyGraph, IncidenceGraph usw. sollten auf ähnliche Weise funktionieren.


    Bearbeiten

    Die Lösung von Heike hat den Vorteil Beibehaltung der ursprünglichen Optionen des Diagramms:

     SetProperty[g, VertexShapeFunction -> "Diamond"]
     

    Was ist der bequemste Weg, um Optionen für Graph [] - Objekte zu ändern?

    Es ist schön, dass die VertexName s so angezeigt werden, wie sie anfänglich in g waren (im Gegensatz zur zweiten Grafik oben).

    15 January 2012
    Justin Walgran
  • Seit Version 10 funktioniert Folgendes:

     Graph[g, VertexLabels -> "Name"]
     

    Hier ist g bereits ein Diagrammobjekt.

    Diese Syntax ist wichtig, da auch die Konvertierung zwischen Graph und Graph3D möglich ist. Beide Diagramme sind Diagramme. Letztere werden jedoch standardmäßig in 3D angezeigt.

    06 September 2015
    Szabolcs