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

Contourplot

 

318is
Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 09.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2017, 11:26     Titel: Contourplot
  Antworten mit Zitat      
Hallo Miteinander!

ich habe 3 Vektoren und plotte diese momentan mit der Funktion scatter 3.

Nun möchte ich das ganze in 2D Darstellen als farbiges Kennfeld. scatter erledigt dies ganz gut jedoch hätte ich lieber eine durchgehende Fläche anstatt der Punkte. Gibt es hierfür eine geeignete Funktion (die anderen Verlangen alle eine Matrix, oder wie müsste man die Matrizen hierfür aus den Vektoren aufbauen?).

Code:

close all
a =[1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4];
b =[1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4];
c =[9 7 3 1 5 6 7 8 3 6 6 3 1 6 7 1];
%scatter3(a,b,c,20,c); % hiervon hätte ich gerne eine Draufsicht (aus c-richtung)
scatter(a, b, 10, c)
% ähnlich wie hier aber als farbige Fläche zwischen den Punkten interpoliert oder mit Isolinien

Ich hätte gerne etwas das einem Muscheldiagramm ähnelt (siehe Anhang). Hat jemand eine Idee?

Beste Grüße!

muscheldiagramm.jpg
 Beschreibung:
Muscheldiagramm

Download
 Dateiname:  muscheldiagramm.jpg
 Dateigröße:  43.62 KB
 Heruntergeladen:  303 mal
Private Nachricht senden Benutzer-Profile anzeigen


318is
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 09.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2017, 15:04     Titel:
  Antworten mit Zitat      
Ich bin selbst schon etwas weitergekommen:

Code:

[ai,bi]=meshgrid(min(a):1:max(a),min(b):1:max(b));
E=griddata(a,b,c,ai,bi);
E(isnan(E)) = max(E(:))

figure;
contour(ai,bi,E,100)



das macht so ziemlich was ich möchte (sieht mit den Beispieldaten natürlich etwas seltsam aus aber mit den Messdaten passt es soweit.

Kann man das ganze nun noch "füllen", damit man einen kompletten farbigen verlauf über die Messdaten mit Farb-Legende hat?

Grüße!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.450
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.08.2017, 15:13     Titel:
  Antworten mit Zitat      
Hallo,

contourf ?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 09.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2017, 15:28     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank für die schnelle Rückmeldung Smile

contourf
macht leider nicht ganz was ich möchte (siehe Scrennshots), da der Bereich ausserhalb gefüllt wird (gelbes Dreieck). Gibt es eine Möglichkeit dies zu unterbinden und nur auf den verfügbaren Bereich anzuwenden?

Grüße!

[EDITED, Jan, Bitte kein Quoting der gesamten vorherigen Nachricht - Danke!]

contourf.PNG
 Beschreibung:

Download
 Dateiname:  contourf.PNG
 Dateigröße:  46.41 KB
 Heruntergeladen:  327 mal
contour.PNG
 Beschreibung:

Download
 Dateiname:  contour.PNG
 Dateigröße:  60.11 KB
 Heruntergeladen:  335 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.450
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.08.2017, 16:22     Titel:
  Antworten mit Zitat      
Hallo,

eine Möglichkeit: die Farbtabelle so anpassen, dass gelb zu weiß wird.
Eventuell kann man auch einen surf-Plot so rotieren, dass es wie gewünscht aussieht.

Code:
surf(peaks)
shading interp
view([0, 0, 100])


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 09.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.08.2017, 09:25     Titel:
  Antworten mit Zitat      
Hallo Harald,

damit habe ich leider nichts hinbekommen...

Ich habe nun aber eine Lösung (nicht elegant aber funktioniert).
Für die Nachwelt:
Code:
contour(ai,bi,E,5000) % 5000 statt 100 oder beliebig hohe Zahl bis es passt

Einfach mit der Anzahl der Isolinien rauf - das ganze frisst natürlich Zeit und Rechenleistung aber der Plot schaut mit wenig Aufwand so aus wie er soll Wink
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 - 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.