WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

bar-plot: XTick seltsame Positionen

 

eisvogel_2

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2010, 00:43     Titel: bar-plot: XTick seltsame Positionen
  Antworten mit Zitat      
Liebes Forum,

ich versteh die Welt nicht mehr, selbst der simpleste bar-Plot misslingt: meine Achsenticks sitzen nicht direkt unter den Histogrammbalken, sondern versetzt und seltsam.

Links/Beispiele: x-Achse unsymmetrisch be-tickt; und y-Achse unsymmetrisch be-tickt

Code:

        Z=[3207.31; 3207.32; 3207.33; 3207.34; 3207.35; 3207.36; 3207.37; 3207.38; 3207.39];
        syll2D=[230; 204; 288; 290; 94; 36; 100; 137; 0]
        bar(Z,syll2D); title('Some Frequencies'); ylabel('Frequency');
 


In meinen beiden Beispielen sieht man, wie die Ticks sich langsam gegenüber den Histogrammbalken verschieben, so dass die Labels an ziemlich blöden Stellen stehen. Ich will aber, dass jeder Balken anständig beschriftet wird, so wie das Matlab früher meiner Meinung auch immer getan hab. ('stem' oder 'plot' liefern ähnliche Ergebnisse)

Idee: Könnte es an der Breite meiner Histogrammbalken liegen, oder vielleicht, dass irgendwie irgendeine automatische Berechnung von mir ausgeschaltet wurde? Aber: Kein in der Laufzeit vorheriger Code von mir enthält auch nur ansatzweise derartige Funktionen, auch habe ich MatLab u. meinen Computer neu gestartet...

Über einen Tipp oder Hinweis würde ich mich sehr freuen,
es dankt,

eisvogel_2


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.03.2010, 12:40     Titel:
  Antworten mit Zitat      
Hallo,

bei mir sieht das einwandfrei aus - zumindest wenn man das Fenster maximiert, davor überlappen die Beschriftungen.

Welches Betriebssystem, MATLAB-Version etc.?

Vielleicht auch mal mit dem Renderer experimentieren.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
eisvogel_2

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.03.2010, 16:46     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für Deinen Post. Ich verwende R2007b auf nem WinXP Rechner. Was ist der "Renderer" in MatLab? Ich weiß, was "rendern" i.A. bedeutet, verstehe jedoch nicht, an welcher Stelle ich bei MatLab mit Parametern rumspielen kann, um mit diesem zu experimentieren, wie Du empfiehlst.

Verrückt: Meine Variablen besitzen exakt die Werte, wie oben angegeben. Führe ich nur(!) den Beispielcode (oben) aus, so zeigt mir MatLab die Grafik wie gewünscht (wie Du es auch selbst sagst). Verwende ich den exakten(!!!) Code (identisch rüberkopiert) jedoch an den problematischen Stelle in meinem eigentlichen MatLab-Programm zur Laufzeit, so bekomme ich wieder eine schiefe Anzeige wie hier gezeigt.

Vermutung: Meines Erachtens muss ich durch meinen Code irgendeinen Laufzeit-MatLab-Plot-Parameter verändert haben. ... doch da ich selbst noch recht frisch in MatLab bin, verwende ich praktisch nur simplen Code (der dann aber auch recht lang wird). Zwar setze ich auch "set(gca,'XTickLabel',XTickLabel);" ... aber das kommt in der Laufzeit erst nach der problematischen Stelle. Mad

Gibt es vielleicht einen Befehl, der alle vermeintlichen Änderungen bzgl. Plottens, die ich versehentlich gesetzt haben könnte, wieder rückgängig und auf automatisch setzt?

Vielen Dank für Deine Hilfe,

eisvogel_2
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.03.2010, 17:38     Titel:
  Antworten mit Zitat      
Hallo,

genau die von dir genannte Zeile wird dann das Problem sein. Hast du schon mal versucht, diese Zeile einfach wegzulassen?

Ansonsten gibt es da keine Möglichkeit. Man kann höchstens mit clf bzw. cla eine Figure oder ein Koordinatensystem komplett leeren, und bei Verwendung der Option 'reset' setzt das auch eventuelle Änderungen zurück - allerdings verliert man damit auch seine Plots.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
eisvogel_2

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2010, 01:46     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:

genau die von dir genannte Zeile wird dann das Problem sein. Hast du schon mal versucht, diese Zeile einfach wegzulassen?


Ich glaube, ich habe mich undeutlich ausgedrückt, tut mir leid. Embarassed
Ich setze in meinen Code "breaks" (break-lines?) ein und lasse den Code nur bis einschließlich des plotBbefehls laufen. Dann tritt bereits der Fehler auf, soll heißen: die Zeile "set(gca,'XTickLabel',XTickLabel);" kann bis zu diesem Zeitpunkt gar nicht ausgeführt worden sein. ... aber dennoch tritt der Fehler auf. Das ist der Grund, warum ich so perplex bin. Confused

Den Tipp mit "clf" und "cla" (mit und ohne 'reset') habe ich ausprobiert, hat aber keinen Unterschied gemacht. Ojeee.

Eine gute Nacht wünscht dennoch,
eisvogel_2

Ansonsten gibt es da keine Möglichkeit. Man kann höchstens mit clf bzw. cla eine Figure oder ein Koordinatensystem komplett leeren, und bei Verwendung der Option 'reset' setzt das auch eventuelle Änderungen zurück - allerdings verliert man damit auch seine Plots.

Grüße,
Harald[/quote]
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.03.2010, 12:02     Titel:
  Antworten mit Zitat      
Hallo,

ich fürchte, ohne genauere Kenntnis des Codes kann ich da nicht weiterhelfen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
eisvogel_2

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.03.2010, 20:30     Titel:
  Antworten mit Zitat      
Dennoch vielen Dank für Deine Hilfe, Harald! Ich werde es nun erst einmal ohne präzise Beschriftung probieren, obwohl es unschön ist. Mein Code ist arg lang, ich könnte ihn Dir natürlich schicken, aber das würde Dir womöglich nur Arbeit bescheren.

Sollte ich aber in ca. zwei Wochen noch das gleiche Problem haben und es sich doch als wichtig heraus stellen, könnte ich Dich dann darauf nochmal ansprechen?

eisvogel_2
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.03.2010, 23:40     Titel:
  Antworten mit Zitat      
Hallo,

eine Idee noch für den Moment:
Code:
set(gca, 'XTickMode', 'auto')
bzw.
Code:
set(gca, 'XTickLabelMode', 'auto')

Vielleicht hilfts ja.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.