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

subplot achsen strecken

 

OrbiTroN
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 13.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2011, 13:29     Titel: subplot achsen strecken
  Antworten mit Zitat      
Hallo Matlab community,
ich arbeite seit kurzem mit matlab und habe nun Probleme mit den plots.
Ich möchte gern 2 plots neben einander haben. Nur soll dabei das linke Bild quadratisch skaliert sein und das rechte Bild soll in seiner X Achse verzerrt sein. Für die optik wäre es schön wenn beide bilder aber die gleiche Höhe haben (Y Achsen gleich lang).
Code:

topo = randn(500,500);

figure
links = subplot(1,2,1), imagesc(topo)
rechts = subplot(1,2,2), plot(topo(100,:))

axis(links,'equal')
 


Ich habe es auch so versucht.

Code:

topo = randn(500,500);

figure
links = subplot(1,4,1), imagesc(topo)
rechts = subplot(1,4,[2:4]), plot(topo(100,:))
 


So wird mir schon mal die y Achse gestreckt, nur ist das linke Bild nicht mehr quadratisch bzw. mit equal dann nicht mehr gleich hoch wie das rechte.

Danke für eure Hilfe!

Zuletzt bearbeitet von OrbiTroN am 13.10.2011, 13:57, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.10.2011, 13:38     Titel: Re: subplot achsen strecken
  Antworten mit Zitat      
Hallo OrbiTroN,

Zitat:
Für die optik wäre es schön wenn beide bilder aber die gleiche Höhe haben (X Achsen gleich lang).

Meinst "Y Achsen gleich lang"?

SUBPLOT legt die Positions der AXES-Objekte fest. Du kannst das aber auch einfach manuell tun:
Code:
Axes1H = axes('units', 'normalized', 'Position', [0.1, 0.1, 0.2, 0.2]);
Axes2H = axes('units', 'normalized', 'Position', [0.4, 0.1, 0.5, 0.2]);

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
OrbiTroN
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 13.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2011, 14:04     Titel:
  Antworten mit Zitat      
Hallo Jan,
danke für die schnelle Antwort. Sorry, meinte natürlich die Y Achse.

Dein Vorschlag funktionier bei mir irgendwie nicht. Ich habe es so probiert.

Code:

topo = randn(500,500);

figure
links = subplot(1,2,1), imagesc(topo);
rechts = subplot(1,2,2), plot(topo(100,:));

links = axes('units', 'normalized', 'Position', [0.1, 0.1, 0.2, 0.2]);
rechts = axes('units', 'normalized', 'Position', [0.4, 0.1, 0.5, 0.2]);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.10.2011, 15:11     Titel:
  Antworten mit Zitat      
Hallo OrbiTroN,
Zitat:
Dein Vorschlag funktionier bei mir irgendwie nicht.

Eine Beschreibung der auftretenden Schwierigkeiten ist besser als "funktioniert irgendwie nicht".

Wenn Du wie von mir gezeigt die AXES-Objekte manuell erzeugst, benötigst Du kein SUBPLOT mehr, um andere(!) AXES-Objekte zu erstellen.
Code:
topo = randn(500,500);
figure
links = axes('units', 'normalized', 'Position', [0.1, 0.1, 0.2, 0.2]);
rechts = axes('units', 'normalized', 'Position', [0.4, 0.1, 0.5, 0.2]);

imagesc(topo, 'Parent', links);
plot(rechts, topo(100,:));

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
OrbiTroN
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 13.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2011, 18:12     Titel:
  Antworten mit Zitat      
Hallo Jan,

ich werde jetzt genauere Infos geben. Wink

Dein Code sieht schon mal gut aus. Leider bekomme ich eine Fehlermeldung durch imagesc.

warning: image: zoom argument ignored -- use GUI features
error: expected data limits to be [lo, hi]


Vielleicht sollte ich noch dazu sagen, dass ich gerade mit Octave arbeite.
Wenn ich den Code nehme, bekomme ich in dem linken Bild keine Grafik ausgegeben. Es ist nur die "Box" zu sehen.

Danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 14.10.2011, 02:06     Titel:
  Antworten mit Zitat      
Hallo OrbiTroN,

Zitat:
Vielleicht sollte ich noch dazu sagen, dass ich gerade mit Octave arbeite.

Ja, das ist eine sinnvolle Information. Da ich mit Matlab arbeite, sprechen wir über zwei verschiedene Dinge.

Ich verschiebe die Frage ins Octave-Forum.
Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
Verschoben: 14.10.2011, 02:07 Uhr von Jan S
Von Grafiken und Plots nach Octave-Forum
 
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 - 2024 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.