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

Fläche zwischen zwei Kurven farbig füllen

 

Ratio
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 30.08.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.09.2017, 19:26     Titel: Fläche zwischen zwei Kurven farbig füllen
  Antworten mit Zitat      
Hallo,

ich möchte die Fläche zwischen zwei Kurven im Hintergrund farbig ausfüllen.
Angehängt findet ihr zunächst die beiden Verläufe, deren Flächendifferenz ausgefüllt werden soll (MATLAB1).
Dazu habe ich folgenden code verfasst:
Code:
figure('Color','white')
plot(time, Pptv(:,1));
hold on
p=plot(time, wallloss(:,1));
set(p, 'Color', [0 0.6 1]);
set(gca,'Xlim',[736882.6 736894.5]);
% fill([time; time],[Pptv(:,1); wallloss(:,1)],[0 0.6 1]);
tlabel('x')

Auskommentiert seht ihr meinen Versuch, diese Fläche auszufüllen, was jedoch nicht funktioniert (das momentane Ergebnis ist in der Datei MATLAB zu finden).
Also habe ich es anders versucht: ich habe über reshape() aus meinen y-Werten x-Werte gemacht:
Code:
TIME= reshape(time, [1,16671]);
PPTV=reshape(Pptv, [8,16671]);
WALL=reshape(wallloss,[8,16671]);

und anschließend wie folgt weitergearbeitet:
Code:
figure('Color','white')
plot(TIME, PPTV(1,:));
hold on
p=plot(TIME, WALL(1,:));
set(p, 'Color', [0 0.6 1]);
set(gca,'Xlim',[736882.6 736894.5]);
filler=fill([TIME; TIME],[PPTV(1,:); WALL(1,:)],[0 0.6 1]);
set(filler,'FaceAlpha',0.2)
tlabel('x')

Mein Ergebnis seht ihr in MATLAB 2 angehängt. Jetzt komme ich hierzu zu meinen Fragen/ den Sackgassen, in denen ich stecke:
- ich habe in obigem Code eigentlich einen blauton als Farbe festgelegt, der Plot wird mir jedoch schwarz aufgefüllt
- trotz meines Befehls, den ausgefüllten Bereich in den Hintergrund zu stellen ('FaceAlpha') funktioniert dies nicht.
- Ein Vergleich zwischen MATLAB2 und MATLAB1 zeigt, dass die "Auflösung" der Linien bei den Verläufen in MATLAB2 viel zu schlecht ist (man erkennt fast gar nichts mehr...).
Daher meine Frage:
gibt es eine Möglichkeit, mit Code1 (und damit mit den in MATLAB1 erzeugten Plots der "y-Werte") zu arbeiten und die Fläche zwischen den Verläufen dennoch erolgreich auszufüllen?

Vielen Dank für eure Hilfestellung!

Viele Grüße

MATLAB.jpg
 Beschreibung:

Download
 Dateiname:  MATLAB.jpg
 Dateigröße:  27.61 KB
 Heruntergeladen:  329 mal
MATLAB2.jpg
 Beschreibung:

Download
 Dateiname:  MATLAB2.jpg
 Dateigröße:  15.38 KB
 Heruntergeladen:  290 mal
MATLAB1.fig
 Beschreibung:

Download
 Dateiname:  MATLAB1.fig
 Dateigröße:  896.26 KB
 Heruntergeladen:  332 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

area sollte helfen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 30.08.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.09.2017, 11:52     Titel:
  Antworten mit Zitat      
Hallo,

leider komme ich ach mit area nicht zum erwünschten Ergebnis. Der folgende Code
Code:
figure('Color','white')
plot(time,Pptv(:,1))
hold on
area(time, wallloss(:,1))
set(gca,'Xlim',[736882.6 736894.5]);
tlabel('x')

zeichnet mir nur eine ausgefüllte Fläche zwischen wallloss und der x-Achse. Wenn ich es mit
Code:
figure('Color','white')
area(time,Pptv(:,1))
hold on
area(time, wallloss(:,1))
set(gca,'Xlim',[736882.6 736894.5]);
tlabel('x')

versuche, erhalte ich selbiges Ergebnis. Area erlaubt es mir auch nicht, neben der Eingabe der zeit und des Verkaufs noch eine Obergrenze als dritten Parameter einzufügen (
Code:
area(time, wallloss(:,1)), Pptv(:,1)
)
Was mache ich hier falsch?
Private Nachricht senden Benutzer-Profile anzeigen
 
Ratio
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 30.08.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.09.2017, 13:02     Titel:
  Antworten mit Zitat      
ich habe mal im Plottools erstellt, was ich eigentlich haben möchte. Der Plot dazu ist angehängt. Diesen Plot muss ich nur noch weitere 30 mal machen, weshalb ich sehr gerne codebasiert arbeiten würde hier.

wall.jpg
 Beschreibung:

Download
 Dateiname:  wall.jpg
 Dateigröße:  42.25 KB
 Heruntergeladen:  346 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Ratio
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 30.08.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.09.2017, 13:12     Titel:
  Antworten mit Zitat      
...wenn ich mit Plottools arbeite, verschiebt es zudem aus mir unbekannten Gründen meine Werte nach oben.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.09.2017, 19:04     Titel:
  Antworten mit Zitat      
Hallo,

ein Bild ohne die zugehörigen Daten ist wenig hilfreich. Wenn du aber mit Plot Tools ans Ziel gekommen bist, dann generiere doch daraus den Code? File --> Generate Code.

Hast du dir mal die Beispiele in der Doku von area angesehen? Das Beispiel "Specify Color and Line Style for Area Plot" sollte passen, wenn du für die unterste Kurve als Farbe 'w' angibst.

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 - 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.