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

plotyy - 2 bar und 2 lininenplots

 

tobi_123_
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 04.11.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2016, 11:54     Titel: plotyy - 2 bar und 2 lininenplots
  Antworten mit Zitat      
Hi,

ich möchte ein Diagramm mit:
- 2 Balkendarstellungen und 2 Linienplots
- Die 2 Balken sollen sich auf die linke y-Achse beziehen
- Die 2 Linienplots auf die rechte y-Achse
- Alle sollen jedoch auf derselben x-Achse basieren

Was habe ich im Code falsch gemacht?

Code:
clc
clear all
close all

% Testdaten
ax_intervall_label = [-3,-2,-1,0,1,2,3]
ax_intervall_fuellung_rel_d1 = [0,5,2,1,2,1,7]
ax_intervall_fuellung_rel_d2 = [1,2,8,0,0,4,6]
ax_kum_rel_d1 = [0,5,12,21,32,41,100];
ax_kum_rel_d2 = [0,2,10,20,80,99,100];


% Plot
figure
[hax,~,~] = plotyy(nan,nan,nan,nan,'bar','plot');
set(hax,'NextPlot','add');

%Balken1
w1 = 0.5; %Balkenbreite definieren
balken_farbe_d1 = [128/255 128/255  128/255]; %Balkenfarbe

hbar1=bar(hax(1),ax_intervall_label,ax_intervall_fuellung_rel_d1,w1);

hx = get(gca, 'children');
hbar1 = hx(1);
set(hbar1,'FaceColor',balken_farbe_d1); %Balkenfarbe

%Balken2
w2 = 0.25; %Balkenbreite definieren
balken_farbe_d2 = [216/255  41/255  0/255]; %Balkenfarbe

hbar2=bar(hax(1),ax_intervall_label,ax_intervall_fuellung_rel_d2,w2);

hx = get(gca, 'children');
hbar2 = hx(1);
set(hbar2,'FaceColor',balken_farbe_d2); %Balkenfarbe

%Plot1
hf1=plot(hax(2), ax_intervall_label, ax_kum_rel_d1,'--', 'Color', [0 0 0],'linewidth',1);

%Plot2
hf2=plot(hax(2), ax_intervall_label, ax_kum_rel_d2,'-.', 'Color', [0.05 0.05 0.05],'linewidth',1);

set(hax,'YColor','k');
ylabel(hax(1),'H(X)');
ylabel(hax(2),'f(x)');
xlabel 'X';
title('Dichtefunktion','FontWeight','bold');
legend([hbar1 hbar2 hf1 hf2],{'b1' 'b2' 'p1' 'p2'},'location','NorthWest');


[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
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: 05.11.2016, 00:04     Titel: Re: plotyy - 2 bar und 2 lininenplots
  Antworten mit Zitat      
Hallo tobi_123_,

Zitat:
Was habe ich im Code falsch gemacht?

Offenbar hast Du den Eindruck, Du habest etwas falsch gemacht. Bitte erkläre, wie Du darauf kommst, denn das ist effizienter, als wenn jeder Leser im Forum selbst versucht darauf zu kommen. Bekopmmst Du eine Fehlermeldung oder weicht das Ergebnis von Deinen Erwartungen ab?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tobi_123_
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 04.11.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2016, 09:40     Titel:
  Antworten mit Zitat      
Die Achsen werden überhaupt nicht richtig skaliert.
Habe es mittlerweile mit Xtick, Ytick und Xlim, Ylim hinbekommen.
Aber warum sind diese zusätzlichen Angaben notwendig? es müsste sich doch auch via Autoskalierung erstmal richtig skalieren?

Danke für die Korrektur Jan und auch den Hinweis.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.11.2016, 10:42     Titel:
  Antworten mit Zitat      
Hallo,

seit R2016a gibt es übrigens yyaxis als Nachfolger von plotyy. Das ist in mancherlei Hinsicht angenehmer in der Nutzung.

Grüße,
Harald
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: 06.11.2016, 10:58     Titel:
  Antworten mit Zitat      
Hallo tobi_123_,

Zitat:
Die Achsen werden überhaupt nicht richtig skaliert.

Um Dir helfen zu können, werden noch zwei Informationen benötigt:
1. Wie werden die Achsen auf Deinem Rechner skaliert? Das kann je nach Matlab-Version unterschiedlich aussehen. Zudem könnte es theoretisch auch daran liegen, ob irgendwelche Nutzer-definierten Funktionienen die originalen Matlab Funktionen ersetzen.
2. Wieso meinst Du, es sei "überhaupt nicht richtig"? Wie hättest Du es denn gerne.

Wenn ich den geposteten Code laufen lasse, sehe ich zwar ein Diagramm, ich kann aber beim besten Willen nicht erraten, was Du daran "nicht richtig" findest.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tobi_123_
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 04.11.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2016, 12:16     Titel:
  Antworten mit Zitat      
Ich denke es lag wahrscheinlich an den Nutzerdef. Fkt..
Habe es wie gesagt nun mit nachträglicher manueller Eingabe der Ticks und Limits hinbekommen.

Vielen Dank dennoch für die Antworten.
Bei meinem nächsten Problem, beschreibe ich detaillierter Smile.
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.