Hallo,
ich möchte die Y-Achse meines Plots gern manuel mit einer Beschriftung festlegen. Geht auch recht einfach mit yticklabel.
Nun hätte ich es gern so, dass es als exponentialschreibweise angezeigt wird.
Also 10^-2, 10^-3, 10^-4 usw... die -2, -3, -4 hochgestellt und ohne ^.
Wie bekomme ich das in ein string umgesetzt?
Hallo Harald,
genau das habe ich auch. Allerdings ist es so das ich eine Messwertereihe über 3 Tage habe. Falls diese erheblich variieren (also um eine 10ner Potenz oder so), passt das alles auch mit der logarithmischen Anzeige. Falls aber 3 Tage lange nahezu gar nix passiert, passt er die y-Achse automatisch an und das obwohl ich eigentlich die obere und untere Grenze mit ylim und die Schrittweite mit ytick festgelegt habe.
Daher war jetzt meine Idee das Ganze mit yticklabel irgendwie zu definieren, damit da gar nix mehr schief geht!
edit: habe für den Plot "plotyy" in Kombination mit "semilogy" verwendet, da ich 2 Messreihen habe. Die linke y-Achse habe ich dann mit "set(AX(1)....." definiert.
Hmm.. also ich befürchte gerade es hat doch nichts mit kleinen Werten zu tun. Leider weis ich auch gerade nicht so genau wie ich ein Beispiel erzeugen soll, ohne die Messwerte selbst zu verwenden, da unter 90 verschiedenen Messreihen das Problem lediglich maximal 2 mal auftritt.
Meine Messreihen tragen den Namen short und long, der Plot wird wie folgt erzeugt:
Mit der rechten Achse ist alles in Ordnung, bei der linken tritt wie gesagt hin und wieder ein kleiner Fehler in der Beschriftung auf. Dazu habe ich 2 Bilder angehangen. Wenn man die Anzeige von unten nach oben liest, sieht es so aus als wenn sich alles nach dem 6ten Wert wiederholen würde. Daher war meine Idee die linke Y-Achse fest zu definieren. Hat jemand sowas schonmal gehabt?
Wie gesagt, ein Script wär vielleicht verständlicher aber da der Fehler nicht wirklich reproduzierbar erscheint, ist das gar nicht so einfach.
geh mal mit dem Debugger Schritt für Schritt durch den Code und schaue, in welcher Zeile genau die merkwürdige Beschriftung der linken y-Achse passiert.
Falls das nicht hilft, bitte einen Beispieldatensatz für short und long in einer .mat-Datei abspeichern und dann gezippt anhängen. Vorzugsweise auch einen Beispieldatensatz, mit dem es klappt.
Hi,
also ich bin mit dem Debugger durch..
Sobald ich einen anderen Tag auswähle, bei dem die Messwerte relativ konstant sind, erscheint meines Erachtens dieser Fehlern.
Wenn diese Messwertereihe mit:
geplottet wird, kann man im Debug - Modus erkennen, dass er an dieser Stelle die linke Y-Achse zunächst automatisch Skaliert. Das sieht dann genau so aus wie bei dem Bild mit der fehlerhaften Anzeige. Zunächst sind es nur 4 oder 5 Beschriftungen um Mitte der Y-Achse. Wenn nachher die Definitionen erfolgen, wie die Achse eigentlich auszusehen hat, rückt der die Mitte nur nach unten und dupliziert noch einmal einige Werte nach oben hin. Warum er das macht ist mir absolut ein Rätsel. Denke wirklich am einfachsten wäre es die Achse selbst zu beschriften. Allerdings sollte es dann schon so aussehen wie eben im Bild mit dem der fehlerfreien Darstellung.
du beschriftest ja quasi schon selber.
Um nachvollziehen zu können, wo das Problem liegt, und Abhilfe zu finden, bräuchte ich ein reproduzierbares Beispiel.
Das "Sobald ich einen anderen Tag auswähle" legt einen Zusammenhang mit der GUI nahe. Kannst du das Problem auch unabhängig von der GUI reproduzieren?
Das Problem ist einfach, dass dieses Phänomen nur sehr selten auftritt. Lediglich bei 2 oder 3 Messreihen von 90, ändert sich die Beschriftung der Y-Achse.
Daher denke ich nicht das es irgendetwas mit den Pushbuttons zu tun hat.
Das wäre dann mein Befehl zum Plotten beider Messreihen:
In den Anhang habe ich jeweils eine short.mat und long.mat der funktionierenden und nicht funktionierenden Messreihe gepackt.
short_ok und long_ok gehören zusammen wie short_fail und long_fail.
Vielen Dank Harald, jetzt klappt alles prächtig!
War die letzte kleine Unschönheit im gesamten Script, an dem ich nun schon einige Wochen arbeite.
Den Befehl kannte ich nun auch wieder nicht.
Was war denn nun das Problem? Für mich hat es den Eindruck gemacht, dass wenn eine Messreihe recht konstant ist (also innerhalb einer 10ner Potenz und das sind wie gesagt die wenigsten von den 90, die ich habe), er da irgendwelche Probleme hatte.
was das Problem war, verstehe ich auch nicht.
Normal würde ich erwarten, dass das automatisch so gesetzt ist.
In dieser Situation scheint dem aber nicht so zu sein.
Grüße,
Harald
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.