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

bar plot mit 2 Y-Achsen?

 

caya
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.08.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2010, 15:46     Titel: bar plot mit 2 Y-Achsen?
  Antworten mit Zitat      
Hallo
ich würde in einer Graphik gerne ein Stapeldiagramm und ein Liniendiagramm kombinieren wobei sich je eins auf eine Y Achse beziehen soll.
Als Beispiel:
Code:
A=rand(3)
B=sum(A,1)+100
bar(A,'stack')
hold on
plot(B)


so sieht das sehr unschön aus da das niveau der Werte völlig anders ist. Wie könnte ich hier eine zusätzlich y-Achse einfügen.
Ich hatte mir den plotyy befehl angeschaut aber der scheint mir nicht auf bar plots anwendbar zu sein.
jemand eine idee?

bsp.jpg
 Beschreibung:

Download
 Dateiname:  bsp.jpg
 Dateigröße:  11.45 KB
 Heruntergeladen:  2003 mal
Private Nachricht senden Benutzer-Profile anzeigen


LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2010, 16:17     Titel:
  Antworten mit Zitat      
Hallo,

plotyy ist schon richtig.

Code:

x = 1:3;
A=rand(3);
B=sum(A,1)+100;
plotyy(x,A,x,B,'bar','plot')
 


Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
caya
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.08.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2010, 15:21     Titel:
  Antworten mit Zitat      
Hi dankeschön das klappt schon prima,weißt du auch ob ich dann noch einstellen kann das der bar plot immer den style 'stack' hat.
Im moment werden die Balken immer automatisch als 'grouped' dargestellt wie bei:
Code:
x = 1:4;
A=rand(4);
B=sum(A,1)+100;
plotyy(x,A,x,B,'bar','plot')
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 29.06.2010, 15:48     Titel:
  Antworten mit Zitat      
Nachträglich in etwa so?

Code:

x = 1:4;
A=rand(4);
B=sum(A,1)+100; % müsste hier nicht eigentlich in die andere Dimension summiert werden?
[ax,h1,h2]=plotyy(x,A,x,B,'bar','plot') ;
set(h1,'BarLayout','stack')
axis([0 5 0 4])
 

_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2010, 18:20     Titel:
  Antworten mit Zitat      
Nabend miteinander,

schön dass es auch andere Leute gibt, die an eine Balkendiagramm arbeiten, schade nur dass es nicht so "einfach" hanelbar ist wie andere Diagrammtypen...

zu meinen Problem, ich habe zwei Vektoren (y und z) die in dem Balken Diagramm gegenübergestellt werden (x):

Code:

x = (1:5);
y = [34 23 34 27 29];
z = [18 16 28 11 16];

 


diese beiden Bsp. Vektoren sollen nun in unterschiedlichen Farben und unterschielichen Skalierungen (2 Y Achse) über x aufgetragen werden.

Dazu schreibe ich:
Code:

plotyy(x,y,x,z,'bar','bar')
 


nur überschreibt er mir dann den ersten Plot eine zweite y Achse wird dargestellt

Mit
Code:

xz = [x;z];
yz = [x;y];

bar(xz,'group')
hold on
bar(yz,'group')
 


ist das Ergebnis auch nicht das was ich erreichen will.

Mit
Code:

h1 = bar(x,z,'r');
hold on;
h2 = bar(x, y,'b');
 


ist das ERgebnis ähnlich wie bei dem ersten...

was muss man da verwenden? Denke an
Code:


führt kein weg dran vorbei, aber die Farbe sowie die anordnung der Balken(nebeneinander) muss noch geändert werden.

einen schönen Abend
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2010, 08:48     Titel:
  Antworten mit Zitat      
Hallo Fourier,

ja genau, nur dass eines der Blakendiagramme anhand einer zweiten y-Achse skaliert werden soll, dass muss auch funktionieren.

Denn wie LittleX schon schrieb, plotyy ist auch schon der richtige Wege, nur meine Ausführung ist es n.n....

VG
 
Fourier
Forum-Guru

Forum-Guru


Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
     Beitrag Verfasst am: 01.07.2010, 08:56     Titel:
  Antworten mit Zitat      
ja ich hab dann die frage richtig gelesen und deswegen meinen beitrag wieder gelöscht Wink
_________________

Ein schlechter General ist besser als zwei gute.
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2010, 09:39     Titel:
  Antworten mit Zitat      
Hallo Fourier,

ok, wie kann ich denn in deinem Bsp. die Farben, Sträken, etc. der Balken ändern?

Ich habe ja kein handle und du fasst ja den Vektor zu einer Matrix zusammen.

Da kann ich im mit:
Code:
bar(x,yz,'r','b');

nur beide Farben des Plots gleichzeit ändern, in diesem Fall sind beide blau...

VG
 
Fourier
Forum-Guru

Forum-Guru


Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
     Beitrag Verfasst am: 01.07.2010, 10:23     Titel:
  Antworten mit Zitat      
Hallo,

so kannst du die eizelnen balken ansprechen:
Code:

x = (1:5);
y = [34 23 34 27 29];
z = [18 16 28 11 16];

yz=[y' z'];
h=bar(x,yz);
set(h(1),'faceColor','g')
set(h(2),'faceColor','y')

legend('y','z')
 


gruss
_________________

Ein schlechter General ist besser als zwei gute.
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2010, 12:51     Titel:
  Antworten mit Zitat      
Hallo Fourier,

ok sowiet alles was ich möcht nur, die zweite y-Achse fehlt noch, nur bekomme ich es mit dem Plotyy Befehl nicht ordentlich dargestellt, haste evtl. ne Idee was man stattdessen machen könnte? Evtl. einen anderen Diagrammtypen?

Gruß
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 01.07.2010, 15:38     Titel:
  Antworten mit Zitat      
Vll so?

Code:
clear all
close all
clc

x = (1:5);
y = [34 23 34 27 29];
z = [18 16 28 11 16]*100;

 
figure(1)
[ax,h1,h2]=plotyy(x-.25,y,x+.25,z,'bar','bar')
set(h1,'Barwidth',0.3,'Facecolor','r');
set(h2,'Barwidth',0.3,'Facecolor','g');
 

_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Foourier

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2010, 15:50     Titel: aa
  Antworten mit Zitat      
schön gemacht, was die +/-0.25 alles bewirken kann Wink
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2010, 17:14     Titel:
  Antworten mit Zitat      
ok, das bewirkt (zumindest bei mir), dass sich die x-Achsen verschieben. Mit anderen Worten ich habe die Skalierung zweimal da stehen und auch die Balken sinde versetzt, das Bespiel von Maddy fkt bei mir einwandfrei.

Was kann dass sein?
 
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.