Sitz heut den ganzen Tag schon an 3 Problemen und komm nicht weiter.
1.) ich habe eine Funktion geschrieben die mehrere inputs und outputs hat.
Und anderem ist einer der Outputs auch ein Plot. Nun möchte ich das Titel abhängig von dem ist mit welcher Matrix ich die Funktion füttere. Z.b gebe ich als Input Matrix A ein, dann soll bei dem Plot der herauskommt bei Titel auch A stehen.
2.) in meiner Funktion gibt es ein normales Kurvendiagramm mit 2 Kurven. Daraufhin folgt ein Kuchendiagramm. Dabei haben die ersten zwei Tortenstücke unmittelbar was mit diesen 2 Kurven zu tun. Daher möchte ich das die ersten zwei Tortenstücke die gleiche Farbe wie die Kurven haben.
3.) Legende vom Kuchendiagramm zeigt falsche Farben an. Ich glaube das liegt daran dass z.b 5 Variablen in den pie chart einspeise aber nur die ersten 4 in die legende packen will. Matlab überspringt daher ein Tortenstück in der Legende. Kann man dem irgendwie sagen dass ich nur die ersten vier beschriftet haben will?
Wer echt super wenn mir jemand in dieser Sache weiterhelfen könnte.
Danke m
das Meiste davon lässt sich mit den sog. handles erschlagen, guck mal in die Hilfe und in die mittlerweile sehr zahlreichen Beispiele im Forum.
Datei erstelleGraphen.m
Code:
function erstelleGraphen(Matrix)
h=plot(Matrix);
legend({'1','2'});
title(inputname(1)); % zu 1) figure;
p=pie(rand(1,4),{'1','2','3','4'});
set(p(1),'FaceColor',get(h(1),'Color')); % zu 2) set(p(3),'FaceColor',get(h(2),'Color')); % zu 2) legend([p(1) p(3) p(7)],{'1','2','XX'}); % zu 3)
Das p aus p=pie(..) enthält für jeden Teil des Charts 2 handles, einen für das Patch-Object, einen für den Text, immer abwechselnd.
Kommst Du damit zurecht?
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
m4n14ccc
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 12.09.2008, 18:01
Titel: 3 Probleme
Super Danke
Punkt 1 hab ich schon lösen können.
Bei Punkt 2 bin ich nahe dran. Das Problem dabei ist dass ich nicht weiß wieviele Tortenstücke das Ding hat. Das ist offen und ist Teil des Ergebnisses der Funktion. Und ich glaub genau das macht Probleme in Zeile 6 von deinem Code. Gibts da irgendwas mit dem ich das offen lassen kann wieviele Tortenstücke am Ende geplottet werden?
m4n14ccc
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 12.09.2008, 18:04
Titel:
Wenn ich das nämlich wüsste könnte ich Punkt drei auch lösen
versteh ich jetzt nicht ganz. Du wolltest ja die ersten beiden Stück in ihrer Farbe ändern, dann hast Du ja mindestens zwei Stücke. Änder die wie oben und lass den Rest in Ruhe. Oder Du bestimmst mir
die Anzahl der Tortenstück nach dem Plotten, oder Du bestimmst sie vor dem Plotten anhand der Ausgabe Deiner Funktion, das wird ja auch irgendwie machbar sein. Dann könntest Du eine for-Schleife machen und jedes Tortenstück bearbeiten.
Am Besten gibst Du mal ein konkretes Beispiel.
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
m4n14ccc
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 12.09.2008, 18:15
Titel:
Also ich hab das nun so eingeben
Code:
% 'l' ist offen bestimmt die Funktion % Pod_lambda_Std ist ein Spaltenvektor clear p
figure(5)
p=pie(Pod_lambda_Std(1:l,1), {'1','2','3','4'}) set(p(1),'FaceColor', [100]) set(p(2),'FaceColor', [010]) set(p(3),'FaceColor', [001]) set(p(4),'FaceColor', [010.5]) legend([p(1) p(2) p(3) p(4)],{'\lambda_1','\lambda_2','\lambda_3','\lambda_4'},'Location','EastOutside')
%Wenn zum bsp für l=5 herausbekomme
%Kommt diese Fehler meldung:
??? Error using ==> pie
Cell array of strings must be the same length as X.
Error in ==> Pod_Basis at 139
p=pie (Pod_lambda_Std(1:l,1), {'1','2','3','4'})
edit by steve: Bitte zukünftig die Codeumgebung benutzen!!!
m4n14ccc
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 12.09.2008, 18:31
Titel:
Oder ich machs so:
Code:
clear p
figure(5) %eigenvalue influence via pie chart
p=pie(Pod_lambda_Std)% ,{'1','2','3','4'} lass ich also weg set(p(1),'FaceColor', [100]) set(p(2),'FaceColor', [010]) set(p(3),'FaceColor', [001]) set(p(4),'FaceColor', [010.5]) legend([p(1) p(2) p(3) p(4)],{'\lambda_1','\lambda_2','\lambda_3','\lambda_4'},'Location','EastOutside')
Der Fehler wegen FaceColor kommt, weil ja diese handles in p abwechselnd für patch und text Objekte sind, hab ich doch oben geschrieben. Und FaceColor ist eine patch-Eigenschaft.
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
m4n14ccc
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 12.09.2008, 18:58
Titel:
Schaut gut aus
Eine letzte Frage:
Wieso machst du sprünge von p(1) p(3) ...
geht nicht p(1) p(2) p(3)??
Hrrr
hab ich doch zweimal schon angedeutet.
p(1) Patch Objekt 1. Tortenstück
P(2) Text Objekt 1. Tortenstück
p(3) Patch Objekt 2. Tortenstück
p(4) Text Objekt 2. Tortenstück
u.s.w. (abwechselnd halt)
Patch Objekt meint im Wesentlichen die Fläche des Tortenstücks, die Du siehst. Text Objekt die Beschriftung.
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
m4n14ccc
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 12.09.2008, 19:31
Titel:
Herzlichen Dank du hast mir den Tag gerettet
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.