7.2 Das MATLAB-Graphiksystem

plot, bar, etc., sind `high-level' MATLAB-Befehle. MATLAB hat aber auch low-level Funktionen, welche es erlauben, Linien, Flächen und andere Graphik-Objekte zu kreieren oder zu ändern. Dieses System heisst Handle Graphics. Seine Bausteine sind hierarchisch strukturierte Graphik-Objekte.

Abbildung 7.2: Objekt Hierarchie [15]
Image objecttree

Wenn Sie den Graphik-Editor aufrufen (Edit im Menu-Balken des Graphik-Fensters), dann können Sie die wichtigsten Eigenschaften der verschiedenen Objekte leicht ändern. Wenn Sie im Property Editor auf Inspector klicken, erhalten Sie die gesamte Liste der Eigenschaften eines Objekts. Zu beachten ist, dass diese Änderungen verloren gehen, sobald Sie einen neuen plot-Befehl von der Kommandozeile absetzten.

Jedes Graphik-Objekt kann mit einem sog. Handle auch von der Kommandozeile oder von einem M-File zugegriffen werden. Der Handle wird bei der Erzeugung des Objekts definiert. Befehle wie plot, title, xlabel, und ähnliche habe als Ausgabewerte einen oder mehrere (plot) handles. Wir wollen zunächst mit dem Befehl gcf (get current figure) das gegenwärtige (einzige) Fenster ergreifen:

    >> gcf
    >> figure
    >> gcf   
    >> close(2)
    >> gcf
Mit dem Befehl gca (get handle to current axis) können wir die gegenwärtigen Koordinatenaxen mit Zubehör (z.B. Linien) ergreifen.
    >> gca
Wir sehen uns nun die Eigenschaften dieses Objekts an:
    >> get(gca)
Achtung: Der Output ist lang! Diese Information kann man aber auch via 'property editor' im File-Menu auf dem Rahmen der Figur erhalten.

Wir wollen uns einige der (alphabetisch angeordneten) Attribute genauer ansehen. Einige Attribute enthalten Werte, andere sind wiederum handles.

    >> th = get(gca,'title')
    >> get(th)
ordnet th den handle zum Title zu. Mit dem Befehl set können Werte von Attributen geändert werden. Z.B.
    >> set(th,'String','S P I R A L E')
Die wesentlichen Attribute von axis, z.B. XTick, XTickLabel, sind selbsterklärend:
    >> get(gca,'XTick')
    >> get(gca,'XTickLabel')
Wir können die Figur mit etwas unsinnigem beschriften:
    >> set(gca,'XTickLabel',['a';'b';'c';'d';'e'])
Ein realistischeres Beispiel betrifft die Beschriftung der Achsen, Liniendicken bei Plots u.ä. Die Befehle
Abbildung 7.3: Plot der MATLAB-Funktion humps mit speziell gewählten Parametern für die Achsenbeschriftung und die Darstellung der Funktion
Image plot1
    >> hp = plot(x,humps(x))

    hp =

      155.0164

    >> set(hp,'Linewidth',4,'Color','red','LineStyle','--')
    >> set(gca,'FontSize',12,'FontWeight','bold')
ergeben den Plot in Abb. 7.3. Die ersten beiden Befehle können zusammengefasst werden in
    >> plot(x,humps(x),'Linewidth',4,'Color','red','LineStyle','--')



Unterabschnitte
Peter Arbenz 2008-09-24