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

Farbige Fläche zwischen Kurven

 

becher
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 06.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.09.2018, 10:58     Titel: Farbige Fläche zwischen Kurven
  Antworten mit Zitat      
Ich habe zwei Kurven, A und B, Dimension jeweils 16*1. Diese plotte ich in ein Diagramm. Nun möchte ich die Fläche zwischen den beiden Kurven gerne füllen, dafür stelle ich mich aber zu blöd an.

Habe bereits einiges mit fill versucht, klappt aber nicht.

Was ist die einfachste Lösung für mein Problem?
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.09.2018, 11:56     Titel:
  Antworten mit Zitat      
Hallo,

ich würde area versuchen und als Farbe für die untere Fläche weiß angeben.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
becher
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 06.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.09.2018, 12:12     Titel:
  Antworten mit Zitat      
Warum auf einmal eine andere Funktion? Was ist denn an fill falsch?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ich würde area als Spezialfall von fill ansehen. Natürlich kann man auch versuchen, das mit fill hinzubekommen. Dazu müsstest du allerdings sagen, was "nicht klappt". Bekommst du eine Fehlermeldung? Welche? Ein unerwartetes Verhalten? Inwiefern?
Generell ist auch ein reproduzierbares Beispiel hilfreich.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
becher
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 06.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.09.2018, 12:46     Titel:
  Antworten mit Zitat      
area schafft mehr neue Probleme als alte Probleme gelöst werden. Etwa die Gestaltung der Linien sowie die Legende. Daher würde ich gerne bei fill bleiben.

Ich habe zwei Y-Reihen und möchte die Fläche dazwischen einfärben.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
area schafft mehr neue Probleme als alte gelöst werden.

Inwiefern? Zumindest für dieses Beispiel klappt das wunderbar:
Code:
x = (1:10)';
y1 = x.^2;
y2 = x.^3;
h = area(x, [y1, y2-y1]);
h(1).FaceColor = 'w';
h(2).FaceColor = 'b';


Zitat:
Ich habe zwei Y-Reihen und möchte die Fläche dazwischen einfärben.

Das ist mir klar. Was mir (immer noch) nicht klar ist: wie rufst du fill mit deinen Daten auf, und welche Probleme treten dabei auf?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
becher
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 06.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.09.2018, 13:44     Titel:
  Antworten mit Zitat      
Code:

x=[1:3];
upper=[
0.1
0.0
-0.1];
mean=upper-0.2;
lower=mean-0.2;
h=area([upper, mean,lower],'LineStyle','-');
h(1).FaceColor = [1 1 1];
h(2).FaceColor = [0.75 0.75 0.75];
h(3).FaceColor = [0.75 0.75 0.75];
 


Hier Würde ich jetzt gerne einzeln das Layout der Linien verändern und eine Legende inkl. der farbigen Fläche hinzufügen. Außerdem soll die x-Achse im Diagramm bei Null anfangen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
Würde ich jetzt gerne einzeln das Layout der Linien verändern

Was meinst du mit "Layout"? Die Linienart, also den LineStyle der umrandenden Linie für die Fläche? Das kannst du genauso anpassen wie die FaceColor.

Zitat:
Legende inkl. der farbigen Fläche hinzufügen

Code:
legend(h(2:3), 'Area1', 'Area2')


Zitat:
Außerdem soll die x-Achse im Diagramm bei Null anfangen.

Selbe Graphik, aber andere Skala? Dann musst du die Werte vor dem Plotten entsprechend anpassen.
Oder abgeschnittene Graphik? Dann kannst du xlim oder ylim verwenden.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
becher
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 06.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.09.2018, 12:35     Titel:
  Antworten mit Zitat      
Das sieht inzwischen schon fast gut aus, besten Dank erstmal.

Eine Kleinigkeit fehlt noch. Neben 'Area1' soll auch noch "mean" mit dem Symbol der Linie in die Legende aufgenommen werden.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

die Möglichkeit sehe ich nicht direkt.
Was du machen kannst:
Code:
h(4) = plot(nan, nan, ...) % mit entsprechender Linienart


So entsteht ein Plot ohne sichtbare Daten, aber die Legende bekommst du mit rein.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.