Hallo,
ich würde gerne die Abstände zwischen den Skalierungsschritten auf meiner y-Achse vergrößern.
Leider werde ich aus der Hilfe nicht schlau.
könnt ihr mir helfen?
nein, nicht direkt die Beschriftung. Eher die Abstände zwischen den einzelnen Ticks.
Also sprich die Achse in die Länge ziehen, ohne die Anzahl der Ticks zuverändern.
z.B. wenn jetzt rein optisch gesehen zwischen 1 und 2 auf der x-achse 1 cm ist, hätte ich gerne 4 cm.
Ich verstehe Dein Problem immer noch nicht.
Macht mein Prgramm das, was Du möchtest?! Du kannst die Größe des Diagramms selbst wählen und dann die Y-Ticks nach Belieben setzen.
die Größe der Achsen bzw. der Graphik an sich würde ich gerne im quelltext festhalten, damit ich sie auch so speichern kann. Denn wenn ich eine beliebige Größe angebe speichert es so ein komisches quadratisches Normalformat, dass mir nichts nützt.
Vielleicht hab ich mich ein bisschen sehr umständlich ausgedrückt.
Sorry, für das Jan.
Hallo Jan,
nein, leider nicht.
ich hab mal einen plot hochgeladen, um zu verdeutlichen was ich meine.
die y-achse ist okay so, doch die x-achse sollte am besten über die ganze bildschirmbreite gehen und das macht sie nicht.
probiert, aber das klappr nicht.
dein code setzt voraus, dass beide Achsen gleich skaliert sind. Sind sie aber hier nicht.
Verstehst du was ich meine?
Gruß,
giftmischen[/code]
Bitte poste lauffähigen Code, dann können nachvollziehen, wie Du das gezeigte Bild erstellt hast. Das Bild beschreibt nun aber schon mal den Ist-Zustand. Nun bräuchten wir noch eine nachvollziehbare Erklärung des Soll-Zustandes.
Zitat:
probiert, aber das klappt nicht.
Ganz generell ist "das klappt nicht" in einem Forum nicht hilfreich. Bitte erkläre, was genau nicht so funktioniert, wie Du es Dir wünschst.
Zitat:
dein code setzt voraus, dass beide Achsen gleich skaliert sind.
Nein. Mein Code hat mit der Skalierung nichts zu tun. Er betrifft nur die Werte, bei denen nur auf der Y-Achse die Ticks angezeigt werden. Die X-Achse spielt dabei gar keine Rolle.
Zitat:
Verstehst du was ich meine?
Nein, eigentlich wird es mir immer weniger klar.
Stört Dich die breite Legende? Du kannst sie ja auch innerhalb des AXES-Objekts anzeigen lassen. Siehe "help legend".
Möchtest Du nun die X- oder Y-Achse verändern? Und betrifft Dein Wunsch die graphische Ausdehnung des AXES-Objektes oder den numerischen Inhalt der dargestellten Werte?
Hey Jan,
ja die Aufgabenstellung hat sich von y- auf x-achse verschoben. Ich dachte, das macht keinen Unterschied. Sorry, für die Verwirrung.
Ich hab jetzt hier mal ein möglicherweise laufendes Beispiel gepostet.
x=[];
for m=1:5;
x{m}=depth.depth(A,ABC,'normalize','on','algorithm','mahal');
end;
y=[];
for m=1:5;
y{m}=depth.depth(B,ABC,'normalize','on','algorithm','mahal');
end;
z=[];
for m=1:5;
z{m}=depth.depth(C,ABC,'normalize','on','algorithm','mahal');
end;
h=figure;
for f=1:5;
hold on;
set(h,'units','pixels','position',[60601200900]);
plot(x{f},':*','color',[000],'LineWidth',2);
plot(y{f},':*','color',[100],'LineWidth',2);
plot(z{f},':*','color',[110],'LineWidth',2);
legend({'x','y','z'},'Location','EastOutside');
saveas(gcf,['Desktop','\test',num2str(f),'.bmp']);
hold off;
close;
end;
neben der Fehlermeldung ist auch die Zeile, in der der Fehler auftritt sehr wichtig. Beides ist nötig um den Fehler zu verstehen.
Code:
h=figure;
for f = 1:5;
hold on;
set(h,'units','pixels','position',[60601200900]);
plot(x{f},':*','color',[000],'LineWidth',2);
plot(y{f},':*','color',[100],'LineWidth',2);
plot(z{f},':*','color',[110],'LineWidth',2);
legend({'x','y','z'},'Location','EastOutside');
saveas(gcf,['Desktop','\test',num2str(f),'.bmp']);
hold off;
close;
end;
Du erstellst zunächst eine FIGURE. Danach verwendest Du "set(h, ...)" um die Position zu setzen. Das würde dann aber in jedem Schleifendurchlauf geschehen - einmal reicht!
Am Ende der Schleife löschst Du aber das FIGURE-Objekt wieder mit CLOSE. In der zeiten Iteration der Schleife ist "h" also keine existierende FIGURE mehr und SET scheitert mit der Fehlermeldung.
Zudem folgt auf Dein "hold off" im nächsten Schleifen-durchlauf sofort wieder ein "hold on" - das hebt sich gegenseitig auf.
Verbesserungsvorschlag:
Code:
h = figure('units','pixels','position',[60601200900]);
AxesH = axes('nextplot', 'add'); % Statt "hold on" for f = 1:5 plot(x{f},':*','color',[000],'LineWidth',2);
plot(y{f},':*','color',[100],'LineWidth',2);
plot(z{f},':*','color',[110],'LineWidth',2);
legend({'x','y','z'},'Location','EastOutside');
drawnow; % sicherer saveas(gcf,['Desktop','\test',num2str(f),'.bmp']);
delete(get(AxesH, 'children')); % oder "cla(AxesH, 'reset')" end;
Es ist immer hilfreich wenn beim (Matlab)-Programmieren die Fragenden und die Antwortenden die nötige Geduld aufwenden. Programmieren ist schwierig. Das Lesen der Dokumentation wirklich richtig wichtig, aber es ersetzt nicht das andauernde Propbieren und Probieren und Probieren. Man lernt ja auch nicht Rechnen, wenn man ein Mathebuch durchliest.
Hey Jan,
danke der Code hat super funktioniert.
Nur kannst du mir vielleicht sagen, warum beim abspeichern das aktuelle aufgerufene Fenster abgespeichert wird? Soll heißen, wenn ich die Funktion duchlaufen lasse und währenddessen im Internet was nachschaue, wird einteil der Webseite als plot gespeichert.
Soll heißen, wenn ich die Funktion duchlaufen lasse und währenddessen im Internet was nachschaue, wird einteil der Webseite als plot gespeichert.
Gräßlicher Java-Mist.
Benutze Matlab 6.5 um dieses häßliche Problem zu umgehen ;-)
Bitte schreibe dieses Problem auch an den technischen Support, damit sie eine weitere Stimme haben, um sich um dieses Problem zu kümmern.
Ich speichere in Matlab 2009a den Inhalt der Figures mit GETFRAME und IMWRITE -- falsch ich kein PAUSE(0.02) vor GETFRAME eingebe, kann ich durch alle UICONTROLs hindurch auf die darunter liegenden Fenster schauen. Auch sehr witzig.
Gruß, Jan
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.