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

Probleme bei plotyy und legend

 

Sebbl
Forum-Century

Forum-Century


Beiträge: 131
Anmeldedatum: 09.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.07.2009, 16:11     Titel: Probleme bei plotyy und legend
  Antworten mit Zitat      
Hi,

ich habe erstelle eine figure mit folgendem Code :

Code:

hFig = figure('Name','Verlauf Strom und Drehzahl','NumberTitle','off');
Matrix_motor = evalin('base','Matrix_motor');
[AX,y1,y2]=plotyy(Matrix_motor(:,1),(Matrix_motor(:,3)*1000),Matrix_motor(:,1),Matrix_motor(:,4),'plot');
xlabel('Zeit [min]','FontSize',10);
set(AX,'FontSize',10);
set(get(AX(1),'Ylabel'),'String','Strom [mA]','FontSize',10);
set(get(AX(2),'Ylabel'),'String','Drehzahl [min^-^1]','FontSize',10);

legend(AX(2),'Test1','Test 2','Location','NorthEastOutside');

 


Nun habe ich jedoch Probleme die Legende der Verläufe oben rechts abzubilden.
Ich möchte beide Verläufe in der Legende benennen und die Legende soll die 2. y-Achse (Rechts) nicht überlappen.
Hat jemand vielleicht einen Vorschlag ?

Gruß Sebbl
Private Nachricht senden Benutzer-Profile anzeigen


Idefix_1024
Forum-Century

Forum-Century


Beiträge: 230
Anmeldedatum: 16.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.07.2009, 19:09     Titel:
  Antworten mit Zitat      
ich bin nicht so wirklich sicher was das Ziel ist...

derartige Plots sehen bei mir aber zB so aus

Code:

close all
clear all
clc

t   = 0:0.01:1;

set(figure,'Name','Plot_Test', 'Position',[10,100,1200,800])
axes_1  = axes('XAxisLocation','bottom',...
           'YAxisLocation','left',...
           'Color','none',...
           'Fontsize', 14,'FontName','Computer modern',...
           'XColor','k','YColor','k','LineWidth',2,...
           'XLim',[0 0.02], 'YLim',[-350 350]);
hold on
line(t,5000.*t+1,'Color','c','LineWidth',2);
line(t,3000.*t+2,'Color','b','LineWidth',2);
hold off
ylabel('Signal 1 und 2')
legend('Signal 1','Signal 2',3)
axes_2  =  axes('Position',get(axes_1,'Position'),...
           'XAxisLocation','bottom',...
           'YAxisLocation','right',...
           'Color','none',...
           'Fontsize', 14,'FontName','Computer modern',...
           'XColor','k','YColor','r','LineWidth',2,...
           'XTickLabel',' ',...
           'XLim',[0 0.02], 'YLim',[-25 25]);
line(t,1000.*t-2,'Color','r','LineWidth',2,'Parent',axes_2);
xlabel('Zeit [Sek.]')
ylabel('Signal 3')
legend('Signal 3',4 )
set(gcf,'PaperOrientation', 'landscape','PaperType', 'A4')
set(gcf,'PaperUnits', 'normalized', 'PaperPosition',[0 0 1 1])
 


hilft das weiter ?

gib doch mal lauffähigen Code an, damit mans mal selbst durchspielen kann... diese Variable Matrix_motor hab ich grad nicht zur Hand...
Private Nachricht senden Benutzer-Profile anzeigen
 
Sebbl
Themenstarter

Forum-Century

Forum-Century


Beiträge: 131
Anmeldedatum: 09.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.07.2009, 14:23     Titel:
  Antworten mit Zitat      
mhh,

danke für den Vorschlag, aber leider ist es nicht ganz die Lösung, die ich suche...

hier mal ein Code der mein Problem vielleicht etwas näher beschreibt..

Code:


hFig = figure('Name','Verlauf Strom und Drehzahl','NumberTitle','off');
Matrix_motor = [1 2 3; 2 3 10; 3 4 12; 4 5 8];
[AX,y1,y2]=plotyy(Matrix_motor(:,1),Matrix_motor(:,2),Matrix_motor(:,1),(Matrix_motor(:,3)*1000),'plot');
xlabel('Zeit [min]','FontSize',10);
set(AX,'FontSize',10);
set(get(AX(1),'Ylabel'),'String','Strom [mA]','FontSize',10);
set(get(AX(2),'Ylabel'),'String','Drehzahl [min^-^1]','FontSize',10);

legend(AX(2),'Test1','Test 2','Location','NorthEastOutside');
 


Wie man sieht, wird in der Legende nur Test 1 dargestellt.. die Beschriftung der 2.Kurve fehlt
Wie kann ich diese Beschriftung mit in dieser Legende unterbringen ?

Gruß Sebbl
Private Nachricht senden Benutzer-Profile anzeigen
 
Idefix_1024
Forum-Century

Forum-Century


Beiträge: 230
Anmeldedatum: 16.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.07.2009, 14:46     Titel:
  Antworten mit Zitat      
also was ich damit sagen wollte
1. plotyy ist mir unsympathisch
2. ich habe die Legende lieber den Achsen zugeordnet

aber man kann natürlich auch
Code:

close all
clear
clc

hFig = figure('Name','Verlauf Strom und Drehzahl','NumberTitle','off');
Matrix_motor = [1 2 3; 2 3 10; 3 4 12; 4 5 8];
[AX,handle(1),handle(2)]=plotyy(Matrix_motor(:,1),Matrix_motor(:,2),Matrix_motor(:,1),(Matrix_motor(:,3)*1000),'plot');
xlabel('Zeit [min]','FontSize',10);
set(AX,'FontSize',10);
set(get(AX(1),'Ylabel'),'String','Strom [mA]','FontSize',10);
set(get(AX(2),'Ylabel'),'String','Drehzahl [min^-^1]','FontSize',10);

legend(handle,'Test1','Test2','Location','NorthEastOutside');
 

schreiben. Das sollte dann wohl eher das sein was Du gerne hättest...
Private Nachricht senden Benutzer-Profile anzeigen
 
Sebbl
Themenstarter

Forum-Century

Forum-Century


Beiträge: 131
Anmeldedatum: 09.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.07.2009, 15:20     Titel:
  Antworten mit Zitat      
fast Very Happy
Danke schonmal

Also das mit der Legende sieht ja jetzt so aus, wie ich es gern hätte....
nur leider überlagert die Legende ja nun meine Achsenbeschrifung der 2. y-Achse...
kann man dem vielleicht noch Abhilfe schaffen ?

Gruß Sebbl
Private Nachricht senden Benutzer-Profile anzeigen
 
Idefix_1024
Forum-Century

Forum-Century


Beiträge: 230
Anmeldedatum: 16.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.07.2009, 15:42     Titel:
  Antworten mit Zitat      
generell kann man die Legende durch
Code:

legend(handle,'Test1','Test2','Color','none',0); % automatisch platziert
legend(handle,'Test1','Test2','Color','none',-1); % außerhalb platziert
legend(handle,'Test1','Test2','Color','none',1); % rechts oben platziert
legend(handle,'Test1','Test2','Color','none',2); % links oben platziert
legend(handle,'Test1','Test2','Color','none',3); % links unten platziert
legend(handle,'Test1','Test2','Color','none',4); % rechts unten platziert
 

positionieren...

zudem ist sie nun auch durchsichtig...

viel mehr kann man wohl nicht mehr verbessern...
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 - 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.