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

bar3 Diagramm - Balken mitels unabhängigem Vektor färben

 

kitterich
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 03.04.16
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 03.04.2016, 12:20     Titel: bar3 Diagramm - Balken mitels unabhängigem Vektor färben
  Antworten mit Zitat      
Hallo gemeinsam,

ich habe folgendes Frage beim Erstellen eines bar3-Diagramms:

Man nehme einen beliebigen bar3-plot:

Code:

Z = rand(2,8);
figure
h = bar3(Z);
shading interp
for i = 1:length(h)
     zdata = get(h(i),'Zdata')
     set(h(i),'Cdata',zdata)
     zlabel('Massenstrom')
     ylabel('Rechenvariante')
     xlabel('Rohr')
     set(h,'EdgeColor','k')
     %colorbar
end
 


Hier richtet sich die Färbung der Balken nach der Höhe ebensolcher ('ZData'). Ich möchte gerne erreichen, dass die Färbung durch einen unabhängigen Vektor beschrieben wird.
Konkret heißt das hier: Aufgetragen wird hier Massenstrom pro Rohr. Ich habe einen weiteren Datensatz für die Temperatur des Fluids. Diesen möchte ich gerne verwenden, um die Balken einzufärben.

Falls sich jemand in dieses Problem hineinversetzen kann, so wäre ich für Rat und Tat äußerst dankbar!

Gruß,

kitterich
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 03.04.2016, 12:25     Titel:
  Antworten mit Zitat      
Hallo,

hast du mit den Temperaturwerten dann einen Farbverlauf für jeden Balken? Oder wäre es nur ein Temperturwert, ergo nur eine Farbe pro Balken?

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen
 
kitterich
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 03.04.16
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 03.04.2016, 12:36     Titel:
  Antworten mit Zitat      
Hallo,

jeder Balken bekommt genau nur einen Temperaturwert zugeteilt! Die Vektoren Massenstrom und Temperatur haben also die gleiche Länge.


Gruß

Stephan
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 03.04.2016, 19:24     Titel:
  Antworten mit Zitat      
Hallo,

das Problem ist, dass sich nur ganze Reihen einfärben lassen. Damit hätten dann aber die 2 Balken aus einer Reihe die selbe Farbe.

Evtl. hilft dir ja dieser Thread: http://de.mathworks.com/matlabcentr.....ze-individual-bar-in-bar3

Ich verstehe den Vorschlag von Jan Simon ehrlich gesagt nicht, bzw. wie man ihn anpassen muss, so dass ein Balken auf allen Seite die selbe Farbe hat.

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.04.2016, 20:54     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich verstehe den Vorschlag von Jan Simon ehrlich gesagt nicht, bzw. wie man ihn anpassen muss, so dass ein Balken auf allen Seite die selbe Farbe hat.


Code:
Y = [8 9 8; 4 5 6; 3 4 5; 1 2 3];  
h = bar3(Y);

[nBar, nGroup] = size(Y);
nColors  = size(get(gcf, 'colormap'), 1);
colorInd = randi(nColors, nBar, nGroup);  % <- Color for each bar

for i = 1:nGroup
   c     = get(h(i), 'CData');
   color = repelem(repmat(colorInd(:, i), 1, 4), 6, 1);  % [EDITED, nBar->4]
   set(h(i), 'CData', color);
end


Gruß, Jan

Zuletzt bearbeitet von Jan S am 04.04.2016, 07:37, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 03.04.2016, 22:00     Titel:
  Antworten mit Zitat      
Dieser Vorschlag funktioniert aber nur für eine 3xn Matrix für Y. kitterich hatte allerdings im Beispiel eine 2x8 Matrix angegeben. Da funktioniert der Code schon nicht mehr.

Wähle ich eine 3x1 Matrix haben auch immer noch alle 3 Balken die selbe Farbe. Bei nur 3 Balken ergibt sich eine 18x3 Matrix für color, wobei 6 Reihen immer die gleichen Werte haben. Ich nehme mal an...eine Reihe für eine Seite des Balkens.

Die Werte in color sind dann auch für jeden Balken unterschiedlich, aber dennoch sind die Balken alle in der selben Farbe.
Private Nachricht senden Benutzer-Profile anzeigen
 
kitterich
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 03.04.16
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 04.04.2016, 01:37     Titel:
  Antworten mit Zitat      
Danke erstmal für die Eingebungen! Wie mein Vorredner bereits sagte, es werden in jeder Reihe immer die gleichen Farben geplottet, was mir nicht weiterhilft. Mein Gedanke war, dass man die 'ZData' in irgendeiner Art und Weise "manipuliert"... Ich habe dazu einfach mal mit der ZData Matrix gespielt. Aber das bringt auch nichts.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 04.04.2016, 07:26     Titel:
  Antworten mit Zitat      
Hallo DSP, hallo kitterich,

Der von mir gepostete Code zeigt, wie es prinzipiell möglich ist einzelne Balken zu färben. Dass man den Code für das konkrete Beispiel des Fragenden anpassen muss, kann durch aus vorkommen. Es ist ja nur ein Vorschlag.

Gruß, Jan
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.