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

plot - letzen punkt in einer anderen farbe makieren

 

luep
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 11.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.04.2016, 09:41     Titel: plot - letzen punkt in einer anderen farbe makieren
  Antworten mit Zitat      
Hallo zusammen,

Ich habe ein kleines rechenprogramm erstellt, wo man je nach Angabe einen Punkt bzw 3 verschiedene Punkte nach Datum erhält und diese werden in einem 3d Plot gezeigt.
Das ganze funktioniert mit gui.
Jetzt meine frage, gibt es eine Möglichkeit, die zuletzt berechneten Punkte in einer anderen Farbe darzustellen.
Also ich wähle ein Datum aus und erhalte 3 Punkte die sind jetzt bspw. grun, gelb, blau. (Punkt gelb ist immer konstant.)
Nun möchte ich ein anderes Datum eingeben und bekomme für Punkt grün und blau zwei weitere Punkte im 3d-Plot gezeigt.
Wenn man das dann z.b. 10 mal durchspielt erkennt man schlecht wo die letzten beiden Punkte hingezeichnet worden sind.

Da suche ich eine Möglichkeit wie das umgesetzt werden kann. Entweder durch eine andere Farbe oder das der letzte Punkt im Plot beschriftet wird.
Dafür müsste der vorletzte Punkt ja anders eingefärbt werden wie alle anderen zuvor und der letzte übernimmt die Farbe vom vorletzten oder eben die Beschriftung vom vorletzten Punkt wird gelöscht (um es übersichtlicher zu halten) und der neue wird beschriftet (z.b. mit neu)

Wäre nett, wenn mir einer sagen könnte, ob das umsetzbar ist und noch besser evtl. Mit Lösungsansatz.

Danke schon mal im voraus.

Gruß
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

du kannst Linien nachträglich verändern mit
Code:
p.Eigenschaft = Wert

Genauere Informationen kann man nur geben, wenn du den relevanten Code zur Verfügung stellst.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 11.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2016, 11:11     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für deine Antwort.

Da mein eigentliches Programm sehr groß ist habe ich mal ein reduziertes Progrämmchen für mein Anliegen geschrieben.

Code:

% letzten Punkt im Plot beschriften bzw. in einer andere Farbe darstellen  

plot3(0,0,0,'oy','MarkerSize',12,'MarkerEdgeColor','y','MarkerFaceColor','y');
rotate3d, 'on';
hold on;

% Schleife wird n mal durchlaufen (n- kann ein beliebiger Wert von 1 bis 200 annehmen) und zeichnet einen weiteren Punkt in den Plot
for i=1:1:3              
x=input(['\nGeben Sie eine Zahl ein \n']);
y=input(['Geben Sie eine Zahl ein \n']);
z=input(['\nGeben Sie eine Zahl ein \n']);

a=input(['\n\nGeben Sie eine Zahl ein \n']);
b=input(['\nGeben Sie eine Zahl ein \n']);
c=input(['\nGeben Sie eine Zahl ein \n']);

plot3(x,y,z,'og','MarkerSize',12,'MarkerEdgeColor','g','MarkerFaceColor','g')
text(x,y,z,'neu')
plot3(a,b,c,'ob','MarkerSize',12,'MarkerEdgeColor','b','MarkerFaceColor','b')
text(x,y,z,'neu')
end
 


Also wie gesagt, die For-Schleife fragt nach 2*3 Zahlen und stellt diese Punkte schließlich im Plot dar. (Pro Schleifendurchlauf 2 Punkte)

Nun möchte ich es so umsetzen, dass die letzten zwei Punkte in dem Plot entweder eine andere Farbe annehmen oder eben die Beschriftung 'neu' bekommen.
(Am liebsten mit der Umsetzung neu)

Bedeutet ja, dass der vorletzte Punkt die Farbe aller zuvor gezeichneten Punkte annimmt und der neue Punkte die von seinem Vorgänger bzw. mit Beschriftung wird die letzte Beschriftung 'neu' gelöscht und der Neue übernimmt die Beschriftung.
(Dabei sollen die Punkte nie miteinander verbunden werden, nur eben der letzt "berechnete" soll gekennzeichnet werden)


Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
luep
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 11.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2016, 11:55     Titel:
  Antworten mit Zitat      
Habe jetzt eine Lösung gefunden, obwohl diese mir iwie nicht sonderlich gefällt

Code:

%%Plot letzten Punkt beschriften bzw. in einer andere Farbe darstellen  

plot3(0,0,0,'oy','MarkerSize',12,'MarkerEdgeColor','y','MarkerFaceColor','y'); %3D plot
rotate3d, 'on';
hold on;
h=0;
m=0;
% Schleife wird n mal durchlaufen und zeichnet einen weiteren Punkt in den Plot
for i=1:1:3
       
x=input(['\n\nGeben Sie eine Zahl ein \n']);
y=input(['Geben Sie eine Zahl ein \n']);
z=input(['\n\nGeben Sie eine Zahl ein \n']);

a=input(['\n\nGeben Sie eine Zahl ein \n']);
b=input(['\n\nGeben Sie eine Zahl ein \n']);
c=input(['\n\nGeben Sie eine Zahl ein \n']);

    if h~=0 | m~=0
        delete(h);
        delete(m);
    end

plot3(x,y,z,'og','MarkerSize',12,'MarkerEdgeColor','g','MarkerFaceColor','g')
m=text(x,y,z,'neu');
plot3(a,b,c,'ob','MarkerSize',12,'MarkerEdgeColor','b','MarkerFaceColor','b')
h=text(a,b,c,'neu');
end
 




Für den Anfang reichts, finde das mit der if Schleife aber nicht sonderlich schön.

Also für weitere Vorschläge bin ich dankbar, evtl auch mit dem Farbwechsel.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

wenn du
Code:

initialisierst, brauchst du die if-Abfrage nicht.

Zum Farbwechsel hatte ich dir ja schon was vorgeschlagen:
Code:
p = plot3(...) % Plot erzeugen

p.Color = % neue Farbe


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

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 21.04.2016, 12:24     Titel:
  Antworten mit Zitat      
mir fallen da zwei moglichkeiten ein. du erstellst für denen punkt einen eigenen plot handle also h(i)=...
dann kannst du immer über h(i).color die farbe ändern.
oder du hast zwei plots bei denen du bei jedem schleifenduchlauf die xdata bzw ydata einträge änderst. ein plot sind die alten punkte einer sind die neuen.
beides ist in etwa gleich einfach zu realisieren.
grüße
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
luep
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 11.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2016, 11:55     Titel:
  Antworten mit Zitat      
Hallo Harald, hallo Winkow,

danke für eure Anregungen und Hilfe.

Habe es nun mit der Beschriftung gelöst, da dies im nachhinein die sinnvollere Lösung für mich war. Daher habe ich das mit der Farbauswahl praktisch nicht umgesetzt.

Nochmals ein großes Dankeschön.


Gruß Luep
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.