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

Barplot Problem

 

migu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.09.2010, 14:59     Titel: Barplot Problem
  Antworten mit Zitat      
Hallo

Ich möchte einen Barplot erstellen mit folgenden Bedingungen:

1) zwei y-Achsen
2) Grenzen der y -Achsen selber festlegen
3) xtick soll vertikal ausgerichtet sein
4) eine linie beliebig im diagram zeichen

Momentan hab ich generell Probleme überhaupt eine zweite y-Achse zu einem Barplot hinzuzufügen.... klappt irgendwie nicht. Schon garnicht mit "plotyy".
Und wie sagt man Matlab (auf einfachere Weise) dass Datensatz1 zu der ersten y-Achse gehört und Datensatz2 zu der zweiten??

Bin für jeder Hilfe dankbar!

Migu


migu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.09.2010, 22:00     Titel:
  Antworten mit Zitat      
nochmal als Ergänzung:

ich möchte das ganze als Funktion speichern, da ich viele Plots immer mit der gleichen Formattierung erstellen muss.
 
migu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.09.2010, 18:39     Titel:
  Antworten mit Zitat      
Hallo

weiss denn keiner irgendwas??

Ich wäre schon froh über eine Idee oder welche Funktionen ich mir in der Hilfe anschauen könnte.... irgendwas!

Danke
Migu
 
eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 14.09.2010, 20:08     Titel:
  Antworten mit Zitat      
1) Schau mal in der Forensuche/Google nach "mehrere Achsen"
2) steht dann auch dort
3) k.A. ob das so einfach funktioniert, ansonsten mit TeX interpreter sollte das irgendwie klappen..
4) Selbst zeichnen oder eine Linie plotten? Plotten über "line", Zeichnen über das Line Tool bei Insert > Line.
Private Nachricht senden Benutzer-Profile anzeigen
 
migu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.09.2010, 11:40     Titel:
  Antworten mit Zitat      
hallo

Im Anhang seht ihr was ich bisher so geschafft habe. Noch mit Linien anstatt Balken...
Was mir noch Probleme bereitet ist:

- dass die ticks an der x-achse nicht doppelt vorkommen sondern nur vertikal
- die 0 soll auf beiden y-achsen auf gleicher höhe sein (skalierung?).
- mit
Code:

[ax,h1,h2]=plotyy(c,a,c,b,'bar'bar');
 


die Balken als "group" plotten lassen. irgendwie klappt das nicht ganz.


Mein Code sieht folgendermassen aus

Code:

function workplot(a,b,c,d)

% a = Datenreihe 1
% b = Datenreihe 2
% c = Positionen der xticks
% d = Vektor mit den xticks (strings)

% Vergewissern dass die Vektoren gleich lang sind
if numel(a)==numel(d) && numel(b)==numel(d);

[ax,h1,h2]=plotyy(c,a,c,b);

% Beschriftung der x-Achse veraendern + drehen
set(ax,'xticklabel',d,'xtick',[1 2 3 4 5 6]);
xticklabel_rotate([1 2 3 4 5 6],90,d);

% Eigenschaften der Linien festlegen
set(h1,'linestyle','-','color','r');
set(h2,'linestyle','-','color','b');

% y-Achsen beschriften
set(get(ax(1),'ylabel'),'string','Erste y-Achse','color','r','fontsize',14);
set(get(ax(2),'ylabel'),'string','Zweite y-Achse','color','b','fontsize',14);

% y-Achsen Grenzen bestimmen
set(ax(1),'ylim',[-300,500],'ytick',-300:50:500);
set(ax(2),'ylim',[-0.8,0.8],'ytick',-0.8:0.1:0.8);

% Farbe der y-Achsen festlegen
set(ax(1),'ycolor','k');
set(ax(2),'ycolor','k');

% Linien zeichnen
annotation('line',[0.1309 0.8598],[0.6548 0.6548],'LineWidth',1);
annotation('line',[0.1309 0.8598],[0.7898 0.7898],'LineStyle','--','LineWidth',1);

% Titel des Diagrams
title('Ein Diagramm','fontsize',20);

% Diagram als .png speichern
print test -dpng
else
    fprintf('Vektoren sind nicht gleich lang')
end
end
 



Und das Ganze starte ich dann mit

Code:

clear all
clc

[a,b,c,d]=textread('test.txt','%d %f %d %s');


workplot(a,b,c,d);
 


gruss
migu

test.png
 Beschreibung:

Download
 Dateiname:  test.png
 Dateigröße:  17.57 KB
 Heruntergeladen:  487 mal
 
migu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.09.2010, 17:19     Titel:
  Antworten mit Zitat      
Hallo

nachdem ich was am Code rumexperimentiert habe, habe ich es doch geschafft Balken zu plotten (siehe Anhang). ABER.....

Warum sind die die Balken übereinander wenn ich als "barlayout", "group" eingebe?

Hier das was ich verändert habe

Code:

[ax,h1,h2]=plotyy(c,a,c,b,'bar','bar');

set(h1,'barlayout','grouped','barwidth',0.5,'edgecolor','k','facecolor','r');
set(h2,'barlayout','grouped','barwidth',0.5,'edgecolor','k','facecolor','b');
 



Gruss
migu

test.png
 Beschreibung:

Download
 Dateiname:  test.png
 Dateigröße:  13.23 KB
 Heruntergeladen:  494 mal
 
migu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2010, 19:14     Titel:
  Antworten mit Zitat      
Hallo

ich dachte mir ich hänge noch die Funktion die augerufen wird, um die xticklabels zu drehen an.

Vielleicht gibts ja irgendwelche Matlabgurus die mir helfen können.

Gruss
Migu

xticklabel_rotate.m
 Beschreibung:

Download
 Dateiname:  xticklabel_rotate.m
 Dateigröße:  9.79 KB
 Heruntergeladen:  449 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 - 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.