Verfasst am: 30.08.2017, 15:55
Titel: Probleme mit "fill"-Funktion. Es fehlt ein input
Hallo liebe Matlab-Gemeinde,
ich bin noch Neuanfänger im Bereich Matlab und arbeite seit knapp 1-2Monaten damit für meine Masterarbeit. Jetzt möchte ich eine Kurve plotten, die mir den Verlauf eines Stoffes darstellt. Zu dieser Kurve soll eine durchgezogene Linie geplottet werden, die den mittleren Background darstellen soll. Diese Linie möchte ich durch die Varianz um Minimum und Maximum ergänzen und das ganze sollte dann noch "im Hintergrund" sein im Vergleich zur Hauptlinie.
Ich bin insgesamt schon relativ weit gekommen damit, nur klappt es nicht mit dem farbigen Ausfüllen der Linien. Ich habe hier im Forum viel zur fill-Funktion gelesen, doch leider funktioniert genau damit etwas nicht bei meinem code und ich konnte bisher weder hier im Forum, noch mit eigener Fehlersuche eine Lösung finden. Angehängt findet ihr meinen derzeitigen Code:
Code:
figure('Color','white') plot(time, n_Logarithmus3) hold on
...Was ich bisher habe seht ihr angehängt als Plot. Ziel ist es wie gesagt, die Fläche zwischen den beiden hellgrauen Linien auszufüllen und die blaue Linie dabei im Vodergrund zu halten.
Vielen Dank für eure Hilfe!
erhalte ich als Plot nur einen vertikalen Strich..Max_ncps_lab und Min_ncps_lab sind die jeweiligen Minima, die ich bestimmt habe. Ich habe sie in einer Matrix zusammengefasst, die der Länge meiner Zeit entspricht:
Muss ich das evtl anders definieren, um den fill-Befehl richtig umsetzen zu können? Anbei findest du den Plot, der entsteht, wenn ich mit obigem Code arbeite...
du machst da aus y-Werten x-Werte.
Du musst Max_ncps_lab(:,3) und Min_ncps_lab(:,3) zu einem Vektor zusammenfassen und entsprechend x-Werte zusammenstellen.
das Problem muss auch definitiv beim fill(...) liegen. Ich habe nochmal den Code darüber evaluiert. Er erzeugt genau den Plot, den ich haben will, nur ohne die ausgefüllte Fläche..
ich habe mir das nochmal angesehen: geht es "nur" darum, ein Rechteck zwischen die beiden grauen Linien zu legen?
Ein reproduzierbares Beispiel wäre in jedem Fall hilfreich.
Hallo,
Genau, es soll nur ein transparentes Rechteck zwischen die beiden hellgrauen Linien gelegt werden (also die Fläche zwischen den Linien transparent farblich ausgefüllt werden).
Vielen Dank, dass Sie sich da so eine Mühe machen!
das hat mich zum Erfolg gebracht, vielen Dank!
Ich habe die Fläche anschließend noch transparent gemacht mit Hilfe von set('Face Alpha').
Damit auch die Nachwelt noch etwas davon hat, hinterlasse ich hier mal das funktionierende Ergebnis als Beispiel (mit JPG angehängt):
Code:
v3_max = reshape(Max_ncps_lab(:,3), [1, 2284]);
v3_min= reshape(Min_ncps_lab(:,3),[1,2284]);
v3_maxmin= [v3_max; v3_min];
v3_mean= reshape(Mean_ncps_lab(:,3),[1,2284]);
v3_time= reshape(time,[1,2284]);
figure('Color','white') plot(time, n_Logarithmus3) hold on
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
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.