Nach all den mühsamen Jahren, in denen ich programmatisch Diagramme mit 3 oder mehr Achsen erstellt habe, geht das endlich mit einem objektorientierten Ansatz: myaxisc. Funktioniert mit Matlab Figures, Matlab App Designer UIFIgures und auch GNU Octave. Mit diesem Problem schlage ich mich seit etwa 2009 herum. Prokastination!

Funktionen

  • Beliebig viele (mindestens 2, maximal so viele wie es Platz gibt) Y-Achsen neben dem Diagramm
  • Funktioniert mit App Designer UIFigures und normalen Figures
  • Zoom- und Pan-Funktionen, um komplettes Diagramm zu verschieben: Per angepasster axtoolbar oder als Buttons in App Designer
  • Methoden zum einfachen Anpassen der Grafik (ylim, ylabel, position, …)

Screenshots

Download

Download: myaxisc-v1.5.1.zip

Download bei Mathworks FileExchange: https://de.mathworks.com/matlabcentral/fileexchange/70033-myaxisc

Beteilige dich an der Unterhaltung

6 Kommentare

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

  1. Hallo Viktor!
    Ähnlich wie Katharina bin ich auch auf der Suche nach einer Möglichkeit, mehrere Achsen in Octave darstellen zu lassen.
    Glücklicherweise habe ich deine Seite/Datei gefunden… (großer Pluspunkt 🙂 ), aber die .zip-Datei ist ja eigentlich eher eine html-Struktur. Wie muss ich die in Octave einbinden? Über pkg install geht’s leider nicht :/
    (Ich benutze Octave nicht so häufig, daher meine Frage an dich.)

    Danke vorab für eine Antwort.

    Gruß, Markus

    1. Hallo Markus,
      der Download-Link war leider kaputt. So gern ich diese Plattform für das Blog hier mag, so sehr hasse ich es, dass man ständig am Upload von .zip-Dateien gehindert wird. Der Download-Link ging auf eine 404-Seite.

      In der .zip-Datei ist eine .m-Datei, die packst Du einfach in dein Arbeitsverzeichnis von Octave. Das Beispiel myaxisc_example.m dabei kannst du auch in Octave direkt starten.

      Meld dich, wenn es Probleme geben sollte.

      Viele Grüße

      1. Hallo Viktor!
        Vielen Dank für die schnelle Antwort. Hat nun alles Bestens funktioniert.

        Weiterhin erfolgreiches und fleißiges Tüfteln!

        Viele Grüße
        Markus

  2. Hi! Ich bin gerade auf deine Matlab-Funktion gestoßen, die mir Vieles erleichtert, womit ich mich in der letzten Zeit rumgeschlagen habe. Eine Frage konnte ich noch nicht beantworten. Kann ich die Y-Axen umdrehen? Wenn ich set(h.p(3),’Ydir‘,’reverse‘) verwende, werden zwar meine Daten verkehrtherum geplottet, die Achse bleibt jedoch normal. Was mache ich da falsch?
    Vielen Dank 🙂

    1. Hi, freut mich dass es hilft! Der Ansatz ist richtig – die Klasse kapselt ja prinzipiell mehrere Achsen, von denen jeweils eine Achse für die Darstellung der Werte (ohne Anzeige der Achse) benutzt wird und eine weitere zur Anzeige der Y-Achse. Mit der Methode „p“ kannst Du auf die Achse für die Daten zugreifen und, das fehlte, mit der Methode „l“ (kleines L) auf die Linie der Y-Achse. Beide Achsen des myaxisc-objekts musst Du umdrehen:

      set(h.p(3),'Ydir','reverse')
      set(h.l(3),'Ydir','reverse')

      Viel Erfolg und viele Grüße