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

3D Plot

 

Dave01
Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 14.08.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.05.2015, 10:49     Titel: 3D Plot
  Antworten mit Zitat      
Hallo an Alle,

ich habe ein Problem mit einem 3D Plot. Wir haben vor kurzem eine Auswertung mit minitab gemacht, diese sieht folgendermaßen aus (3D minitab).

Ich würde das gerne ebenso in Matlab darstellen. Ich habe 3 vektoren definiert, nur leider funktioniert das nicht so wie ich mir das vorstelle und ich bin auch nicht der beste Programmierer..

Ich würde gerne diese Werte in einen 3D plot darstellen:
T = [25 37 49 61 73]
x = [0.02 0.04 0.06 0.08 0.1];
y = [37 37 40 40 40];

3D minitab.png
 Beschreibung:

Download
 Dateiname:  3D minitab.png
 Dateigröße:  5.67 KB
 Heruntergeladen:  333 mal
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: 30.05.2015, 11:57     Titel:
  Antworten mit Zitat      
Hallo,

was hast du denn versucht?

Ich würde die Daten zunächst mit griddata auf ein Gitter interpolieren und die Daten dann mit surf oder mesh visualisieren. Ein Beispiel dazu findest du in der Doku von griddata.

Mit so wenigen Datenpunkten wird das allerdings nicht sehr berauschend aussehen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 14.08.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.05.2015, 12:09     Titel:
  Antworten mit Zitat      
Hallo!

Ich habe eine kleine Versuchsreihe erstellt, 2 Variablen zu 5 Faktorstufen und eine Zielgröße. Diese würde ich gerne 3D plotten.

Ich habe einmal so versucht:

Code:
x = [0.02 0.04 0.06 0.08 0.1];
y = [37 37 40 40 40];
z = [25 37 49 61 73];

rangeX  = 1:1:80;
rangeY  = 0:0.1:0.12;

[X,Y]   = meshgrid(rangeX,rangeY);
Z       = griddata(x,y,z,X,Y,'cubic');
surf(X,Y,Z)
colorbar


Leider komme ich noch kein ähnliches Ergbnis wie im Png Bild
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: 30.05.2015, 12:23     Titel:
  Antworten mit Zitat      
Hallo,

die Bereiche für x und y sollten schon so gewählt werden, dass auch Daten vorhanden sind - z.B. so
Code:
rangeX  = linspace(min(x), max(x), 5);
rangeY  = linspace(min(y), max(y), 5);


Fünf Datenpunkte sind einfach zu wenig. In deinem minitab-Bild waren es z.B. anscheinend 15 Datenpunkte. Vor allem gibt es in deinem Beispiel keine Überschneidung der Variation von x- und y-Werten.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 14.08.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.05.2015, 12:25     Titel:
  Antworten mit Zitat      
Ich glaube ich fange von vorne an, damit man weiss worum es eigentlich geht: Ich habe eine Versuchsreihe erstellt nach dem Plan wie im Bild ersichtlich. Dabei wurde während den Versuchen die Temperatur und die Geschwindigkeit verstellt. Die Zielggröße ist eine Länge, alles über 30 mm gilt als o.k. Die Grafik würde ich nun gerne in einen 3D Plot darstellen

Versuchsreihe.jpg
 Beschreibung:

Download
 Dateiname:  Versuchsreihe.jpg
 Dateigröße:  1.47 MB
 Heruntergeladen:  318 mal
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: 30.05.2015, 13:27     Titel:
  Antworten mit Zitat      
Hallo,

dann musst du die Daten nur noch so wie sie da stehen in eine Matrix schreiben, und es passt:

Code:
T = [25, 40, 55, 70, 95];
V = 0.04:0.02:0.12;
data = [NaN, NaN, 32, 35, 40;
    NaN, NaN, 31, 35, 40;
    NaN, NaN, 32, 35, 40;
    NaN, NaN, NaN, 33, 37;
    NaN, NaN, NaN, 33, 37];

surf(T, V, data)
view(-60, 30)


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 14.08.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.05.2015, 14:25     Titel:
  Antworten mit Zitat      
Ein Wahnsinn, vielen Dank !! Genauso benötige ich das!

Ich versuche gerade die Farbe innerhalb eines Kästchens mit colormap() zu bearbeiten. Das Programm färbt aber immer ein Kästchen in genau einer Farbe ein, ohne Farbverlauf. Ist es möglich, einen Farbverlauf innerhalb des Kästchens zu generieren.

Ich weiss, meine Datenmenge ist sehr gering um das schön darstellen zu können.

EDIT: shading interp; Smile aber leider ohne Gitternetzlinien
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: 30.05.2015, 14:57     Titel:
  Antworten mit Zitat      
Hallo,

wenn du die Gitternetzlinien behalten willst:
Code:
surf(T, V, data, 'FaceColor', 'interp')


Ich musste das auch erst in der Doku nachlesen, und ich kann wirklich nur jedem empfehlen, im Zweifelsfall die Doku zu nutzen :)

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 14.08.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.05.2015, 18:08     Titel:
  Antworten mit Zitat      
Vielen lieben Dank für deinen Einsatz heute Harald !!! Du hast mir sehr geholfen !

Eine letzte Frage noch, könnte man im 3D plot die Werte interpolieren ohne großem Aufwand oder würde das wenig Sinn machen?
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: 30.05.2015, 19:44     Titel:
  Antworten mit Zitat      
Hallo,

dann wären wir wieder bei griddata. Default ist lineare Interpolation; das bringt also nichts. Zu überlegen wäre höchstens eine kubische Interpolation.

Grüße,
Harald
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.