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

Marker unterschiedlich einfärben

 

gdow86
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 20.07.12
Wohnort: ---
Version: 7.9.0 (R2009b)
     Beitrag Verfasst am: 20.07.2012, 15:10     Titel: Marker unterschiedlich einfärben
  Antworten mit Zitat      
Hallo miteinander,

bin neu hier und habe eine Frage zum Thema plotten.
Ich benötige einen Plot in dem mehrere Kugeln in unterschiedlichen Farben dargestellt werden.

Mein Code dafür sieht wie folgt aus:
Code:

Pos=[1 2;4 2;4.25 1.5;4.25 2;4.25 2.5;4.5 1.25;4.5 1.75;4.5 2.25;4.5 2.75];
Kugelfarben=[[0 0 0];[1 0 0];[0 1 0];[0 0 1];[1 1 1];[1 1 0];[0 1 1];[1 0 1];[0 0.5 0.5]];
AnzahlKugeln=9;

for c=1:AnzahlKugeln;
plot(Pos(:,1),Pos(:,2),'o','MarkerEdgeColor','k','MarkerFaceColor',Kugelfarben(c,:),'MarkerSize',10);
end
 


Das Problem ist, dass zwar alle Kugeln zu sehen sind, allerdings nur in der zuletzt definierten Farbe.
Es sollen allerdings jeder Kugel IHRE Farbe zugewiesen werden.

Ich hoffe Ihr versteht mein Problem und könnt mir helfen.

Schon mal im voraus vielen Dank.
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: 20.07.2012, 17:31     Titel: Re: Marker unterschiedlich einfärben
  Antworten mit Zitat      
Hallo gdow86,

Du zeichnest ja auch immer alle Kugeln in der aktuellen Farbe.

Code:

Pos=[1 2;4 2;4.25 1.5;4.25 2;4.25 2.5;4.5 1.25;4.5 1.75;4.5 2.25;4.5 2.75];
Kugelfarben=[0 0 0;1 0 0;0 1 0;0 0 1;1 1 1;1 1 0;0 1 1;1 0 1;0 0.5 0.5];
AnzahlKugeln=9;

for c=1:AnzahlKugeln;
  plot(Pos(c,1),Pos(c,2),'o','MarkerEdgeColor','k','MarkerFaceColor',Kugelfarben(c,:),'MarkerSize',10);
  % statt Pos(:, 1), Pos(:, 2)
end

Die doppelten eckigen Klammern rauben nur Zeit, wenn man eine Matrix definiert.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 20.07.12
Wohnort: ---
Version: 7.9.0 (R2009b)
     Beitrag Verfasst am: 20.07.2012, 21:07     Titel:
  Antworten mit Zitat      
Guten Abend Jan,
vielen Dank schon mal für den Tipp mit den Klammern.

Leider plottet er nur die letzte Kugel wenn ich den folgenden Code nehme:
Code:

plot(Pos(c,1),Pos(c,2),'o','MarkerEdgeColor','k','MarkerFaceColor',Kugelfarben(c,:),'MarkerSize',10);
 


Also wird im Prinzip sofort zur letzten Kugel gesprungen und die anderen werden einfach ausgelassen.
Private Nachricht senden Benutzer-Profile anzeigen
 
gdow86
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 20.07.12
Wohnort: ---
Version: 7.9.0 (R2009b)
     Beitrag Verfasst am: 20.07.2012, 21:21     Titel:
  Antworten mit Zitat      
Hab es gelöst Wink

Der Fehler lag darin, dass der Plot immer wieder überschrieben wurde und somit nur der jeweils letzte Eintrag verwendet wird.

Es fehlte einfach ein "hold on" in der for-Schleife... Smile

Code:

for c=1:AnzahlKugeln;
    hold on;
    plot(Pos(c,1),Pos(c,2),'o','MarkerEdgeColor','k','MarkerFaceColor',Kugelfarben(c,:),'MarkerSize',10);
end
 


So werden alle Kugeln in der richtigen Farbe geplottet.
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: 21.07.2012, 00:44     Titel:
  Antworten mit Zitat      
Hallo gdow86,
Oder:
Code:
axes('NextPlot', 'add');

vor der Schleife.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 20.07.12
Wohnort: ---
Version: 7.9.0 (R2009b)
     Beitrag Verfasst am: 21.07.2012, 00:50     Titel:
  Antworten mit Zitat      
Guten Morgen Jan,

habe ich direkt mal ausprobiert.

Allerdings haut die Funktion meinen ganzen Plot durcheinander.
Vielleicht liegt das daran, dass ich mit subplots arbeite?

Oben ist ja auch nur ein Ausschnitt meines Codes zu sehen, da der Rest ja soweit gut funktioniert Wink

Aber schau doch mal ins Forum "Programmierung"...vllt kannst du mir da auch helfen?
(Dort ist auch der ganze Code zu sehen).

Gruß und eine angenehme Nacht, Guido
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.