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

Matlab - How can I fill the area under the "Ribbon&am

 

stoxxii

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2008, 16:59     Titel: Matlab - How can I fill the area under the "Ribbon&am
  Antworten mit Zitat      
Halloo Matlab Users,

bitte helft mir , bei einem rel. kleinen Graphic-Problem mit Ribbon.

Ich möchte die Flächen unterhalb einer Ribbon-Wave oder unter mehrerer in seiner Fläche mit Farbe ausfüllen ...
Ich habe leider no plan , ob dies mit "patch" , oder "fill3" oder einem anderen Command praktisch umgesetzt werden kann....
The same Problem : das gleiche Problem habe ich mit dem Command: Cylinder , auch diesen kann ich z.B. nicht mit einer anderen Farbe ausfüllen ...
- thanks in advance for help & time -


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 13.08.2008, 08:44     Titel:
  Antworten mit Zitat      
Moin,

am besten du stellst mal einen Bsp.-Code und einen Plot online, damit wir sehen können, was du gemacht hast und evtl. fällt uns dann etwas dazu ein. Denn ich kann z.B. mit einer "Ribbon-Wave" nichts anfangen...

Gruß
alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
stoxxii

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.08.2008, 17:04     Titel:
  Antworten mit Zitat      
halloo ...

sorry, code für Bsp. habe ich damals vergessen reinzuschreiben ...

also simples 3D Ribbon Bsp.mit Matlab Version 6.5 R13:
Code:

clear all, close all, clf;

% 1. create  Zufalls-Verteilung
Rn = randn(10000,1);
bins = 30 ;

% 2. fiktive Berechnung mit hist - Befehl
[N X] = hist(Rn, bins)

% 3. Darst. mit [b]RIBBON[/b]
ribbon(X,N, 0.5);
view(95, 8);
colormap hsv; title(Drallalala); zlabel(frequency);

% 4. design  [b]full-area  under the ribbon-wave[/b]

h = get(gca, 'children');
X = get(h,  'Xdata');
Y = get(h, 'Ydata');
Z = get(h, 'Zdata');

patch(X, Y, Z, 'r', 'Facealpha', 0.6);
Wink

>>> bis hier läuft es soweit ganz gut ,
aber ich will eben nur eine Teilfläche (bis fikt. X-Value), oder 2 Teilflächen farblich getrennt unter der Ribbon-Wave darstellen, mit Index (find) oder soo...

[Q, R] = find(X <= Xpoint )
patch(X(Q,R), Y(Q,R), Z(Q,R)) .....

aber : mein Mathe-Verständnis oder das für Matlab konvergiert hier in engen Grenzen in der Größe eines Fahrstuhls .... Confused

> Versuche scheiterten auch mit " surf " ...

So, jetzt habe ich mein Dilemman wohl doch besser dargestellt ...
Vielleicht könnt ihr mir nun einen entscheidenden Schritt weiterhelfen...

Danke für's Mühen vorab.
grüße
stoxxii

/edit: Bitte zukünftig immer die Code-Umgebung benutzen!
Gruß Alex
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 14.08.2008, 17:49     Titel:
  Antworten mit Zitat      
Hallo stoxxii,

meinst Du so?

Code:
ind1 = find(X<=1);
ind2 = find(X>1);

patch(X(ind1), Y(ind1), Z(ind1), 'r', 'Facealpha', 0.6);
patch(X(ind2), Y(ind2), Z(ind2), 'b', 'Facealpha', 0.6);


Das ergibt zwei verschiedenfarbige Flächen unter der "Ribbon-Wave".

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
stoxxii

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.08.2008, 20:16     Titel: netter joke , Bijick ....
  Antworten mit Zitat      
wäre natürlich wirklich toll, du hättest schlauer als ich, mein Script
verbessert und in den correkten Forum- Code geschrieben ...

Laughing

vielleicht hast'e doch noch 'ne brauchbare Idee für meine Flächen ....
grüße
stoxxii
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 15.08.2008, 09:48     Titel:
  Antworten mit Zitat      
Hallo stoxxii,

das verstehe ich jetzt, ehrlich gesagt nicht. Was ist der correcte Forum-Code? Und wo ist der Witz? Ich meine Folgendes:

Code:
% Dein Code
Rn = randn(10000,1);
bins = 30 ;
[N X] = hist(Rn, bins)
ribbon(X,N, 0.5);
view(95, 8);
colormap hsv; title('Drallalala'); zlabel('frequency');
h = get(gca, 'children');
X = get(h,  'Xdata');
Y = get(h, 'Ydata');
Z = get(h, 'Zdata');

% Mein Vorschlag
ind1 = find(X<=1);
ind2 = find(X>1);

patch(X(ind1), Y(ind1), Z(ind1), 'r', 'Facealpha', 0.6);
patch(X(ind2), Y(ind2), Z(ind2), 'b', 'Facealpha', 0.6);


Das ergibt bei mir (Version R2006b) ein Band aus Flächen in Form einer Glockenkurve in türkis und darunter zwei halbtransparente Flächen in rot und blau bei den beiden X-Werten.

Wenn Du etwas anderes brauchst, solltest Du das vielleicht nochmal genauer bechreiben. Ich könnte mir vorstellen, dass Du nach den Y-Werten unterscheiden möchtest, aber das kann ich aus Deiner Beschreibung nicht wirklich ersehen.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 15.08.2008, 10:47     Titel:
  Antworten mit Zitat      
Moin Bijick,

könntest du mal deinen fertigen Plot posten? Denn ich bekomme bei der Ausführung deines Codes keine zwei Flächen Sad

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.08.2008, 10:52     Titel:
  Antworten mit Zitat      
@Steve: Hast du das Ribbon-Wave mal gedreht, bzw. den Plot? Dann kann ich zumindest nach Bijicks Code zwei Flächen sehen!
Eine rot, eine blau (gleiche Fläche und Form, unterschiedl. x) und die türkise Gaußglocke.

edit: @Bijicks des weiteren könnte ich mir vorstellen, das stoxxii dich nicht kritisieren wollte sondern hier ein sprachliches Problem vorliegt. Daher @stoxxii vielleicht könntest du dein Problem eher graphisch beschreiben, damit wir dir helfen können!
_________________

Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 15.08.2008, 12:56     Titel:
  Antworten mit Zitat      
Hallo,

ich wollte nicht beleidigt klingen, also @stoxxii: Entschuldigung, falls das so rübergekommen ist.

Ich möchte mich aber der Bitte anschließen, das Problem näher oder anders zu beschreiben. Unten noch der Plot, etwas rotiert, sodass man die beiden Flächen sehen kann.

Herzliche Grüße
Bijick

ribbon.fig
 Beschreibung:

Download
 Dateiname:  ribbon.fig
 Dateigröße:  6.46 KB
 Heruntergeladen:  723 mal

_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 15.08.2008, 14:49     Titel:
  Antworten mit Zitat      
Und ein Vorschlag zur Güte Smile

Code:
clear all, close all, clf;
Rn = randn(10000,1);
bins = 30;
[N X0] = hist(Rn, bins);
ribbon(X0,N,0.5);
view(95,8);
colormap hsv; title('Drallalala'); zlabel('frequency');
h = get(gca,'children');
X = get(h,'Xdata');
Y = get(h,'Ydata');
Z = get(h,'Zdata');

ind = 10;            % zwischen 1 und bins wählen
Value = X0(ind);        
ind1 = find(Y(:,1)<=Value);
ind2 = find(Y(:,1)>=Value);
patch([X(ind1,:);X(1,:)], [Y(ind1,:);Y(ind),Y(ind)], [Z(ind1,:);0,0], 'r', 'Facealpha', 0.6);
patch([X(ind2,:);X(1,:)], [Y(ind2,:);Y(ind),Y(ind)], [Z(ind2,:);0,0], 'y', 'Facealpha', 0.6);


Das komplizierteste ist, den zusätzlichen Punkt unten in der Mitte zu definieren. Er muss Z=0 haben, X wie in der ganzen Ebene und den Y-Wert, den wir vorher in X0 ausgewählt haben. (Das erste X aus dem hist-Befehl habe ich in X0 umbenannt.)

Kommt das Deinen Vorstellungen schon näher?

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
stoxxii

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.08.2008, 15:33     Titel: > danke Bijick, ich bin eben a noobi here ...
  Antworten mit Zitat      
ich kann deinen Programmier-code erst abends probieren...

sieht aber vorteilhaft aus ....

>> ich hatte auch nur eine einzelne Vollfläche, naja neudeutsch

Full-Area zeichnen können ... das ist soweit ganz korrekt ...

aber eben Teilflächen konnte ich nicht indexieren , so wie es bei

Dir aussieht ... Wink

ich melde ich nochmal , auch wenn'S läuft

PS: hätte noch eine Bitte an dich :
> bar3 kennst du sicher ... aber stem3 ??? ..
...da habe ich auch wieder ein sog. Index-Problem , um die Farben so auszugeben ,
in Abhängigkeit der Anzahl Spalten oder Reihen,
so wie das standardsmäßig bar3 tut....

>> im Anhang müßte Beispiel-Script sein .... hier verkürzter Code :
Code:
subplot(1,2,1);
     [x,y]=meshgrid(0:6, 0:10);
     z= sin(x) .* cos(y/2);
     bar3(z);
subplot(122)
     HB = stem3(z, 'c*', 'filled')                    
   set(HB, 'linewidth', 2, 'markersize', 10)
 

try your best , please ... Smile
so long
best wishes
stoxxii aus halle

/edit: Nochmal die Bitte an die Code-Formatierung zu denken!
Gruß Alex


AA__meshgrid__bar3__stem3.m
 Beschreibung:

Download
 Dateiname:  AA__meshgrid__bar3__stem3.m
 Dateigröße:  1.26 KB
 Heruntergeladen:  745 mal
 
stoxxii

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.08.2008, 16:06     Titel: > Danke zu Bijick & Steve , Graphic-Picture im An
  Antworten mit Zitat      
halloo bijick,
halloo steve,

also ich bin niemanden irgendwie böse oder beleiligt ... nur nochmal so vorweg ...

ich hoffe, die Bilder im Anhang könnt ihr öffnen .... auch das figure von matlab ...

>> es ist großartig , daß ihr hier so eine offene und busy Community
fahrt ...

ich hatte mir sonst bei einem auch sehr freundlichen Prof. nachhilfe geholt, via eMail - Transfer und natürlich einige eMails nach Übersee gepostet und Ideas getauscht ... auch viele Sachen aus den Mathworks-Foren : Central ... etc....

vielleicht helft ihr mir noch bei diesem anderen
Color-Index mit stem3

grüße
stoxxii

Matlab__3D Ribbon - Area__Graphic.doc
 Beschreibung:

Download
 Dateiname:  Matlab__3D Ribbon - Area__Graphic.doc
 Dateigröße:  66.5 KB
 Heruntergeladen:  571 mal
Graphic___Ribbon__Area.fig
 Beschreibung:

Download
 Dateiname:  Graphic___Ribbon__Area.fig
 Dateigröße:  17.77 KB
 Heruntergeladen:  690 mal
 
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.