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

Nulllinie bei Grafiken einfügen

 

Maddin
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 09.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.02.2011, 13:22     Titel: Nulllinie bei Grafiken einfügen
  Antworten mit Zitat      
Hallo,
ganz kurze Frage. Ich habe eine figure erstellt und in der GUI der figure einige Veränderungen gemacht, das ganze dann über "Generate M-File" ausgegeben. Jetzt würde ich gerne eine Nulllinie einfügen, also für Y=0. Ich komme da nicht wirklich weiter, bin aber sicher, dass es bestimmt nur ein kleiner Denkfehler ist. Der Code sieht so aus:

Code:

function createfigure1(FC, att_v)
% CREATEFIGURE1(X1,Y1)
%  X1:  vector of x data
%  Y1:  vector of y data

%  Auto-generated by MATLAB on 09-Feb-2011 12:08:06

% Create figure
figure1 = figure('PaperType','<custom>','PaperSize',[20.98 10]);

% Create axes
axes1 = axes('Parent',figure1,'XScale','log','XMinorTick','on');
box('on');
hold('all');

% Create semilogx
semilogx(FC, att_v,'Parent',axes1);

% Create legend
legend(axes1,'show');

% Create line
annotation(figure1,'line',[0 1],get(gca,'ylim'));
 


Kann mir jemand sagen, wie ich diese Nulllinie reinkriege? Gerne auch über die Gui, aber da hab ich noch garnichts gefunden um das gescheit zu editieren.

Vielen Dank schon mal!

der Maddin

edit bei denny: Bitte Codeumgebung verwenden. Danke!
Private Nachricht senden Benutzer-Profile anzeigen


Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 09.02.2011, 13:58     Titel:
  Antworten mit Zitat      
Hallo,

prinzipiell funktioniert der annotation "line" Befehl folgendermassen:
Code:

annotation('line',[0 1],[0.5 0.5]); % [x1 x2], [y1 y2]
 


MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 09.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.02.2011, 16:27     Titel:
  Antworten mit Zitat      
Danke für die schnelle Antwort. Allerdings wird die Linie jetzt zwar in der Mitte der figure gezeichnet, die Nulllinie des Graphen ist aber woanders. Die Linie geht auch über die Achsen hinaus. Hab jetzt erstmal ne Nulllinie mit nem Vektor erzeugt, der nur 0en enthält, aber so wirklich das WAhre ist das auch nicht, da die jetzige Nulllinie über meiner eigentlichen Grafik liegt. Gibt es eine Methode annotation zu benutzen und die Linie an die Achsen anzupassen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 09.02.2011, 17:01     Titel:
  Antworten mit Zitat      
Hallo,

ok, vielleicht ist "line" besser geeignet:
Code:

figure1 = figure('PaperType','<custom>','PaperSize',[20.98 10]);

% Create axes
axes1 = axes('Parent',figure1,'XScale','log','XMinorTick','on');
box('on');
hold('all');

x = 1:0.1:10;
y = sin(x);
% Create semilogx
plot(x,y)

line([min(x), max(x)], [0, 0],'Color','red');
% Create legend
legend(axes1,'data');
 


MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 09.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.02.2011, 17:26     Titel:
  Antworten mit Zitat      
Cool, so funktionierts! Genau das, was ich brauche.

Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 09.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.02.2011, 17:31     Titel:
  Antworten mit Zitat      
Verdammt...doch nicht. Gerade fiel mir auf, dass jetzt die Linie in der Legende auftaucht. Wenn ich sie ans Ende setze kann ich zwar Manuell nur die relevanten Daten in die Legende mit aufnehmen, dann allerdings liegt die Linie wieder ÜBER der eigentlichen Grafik.

Kann man da am Legend-Befehl was ändern, also in der Art:
Legende (nur den 2., 3. und 4. Datensatz verwenden)

Bisher mach ich das so:
legend1 = legend(axes1,'show');

Danke nochmal!
Private Nachricht senden Benutzer-Profile anzeigen
 
Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 09.02.2011, 17:52     Titel:
  Antworten mit Zitat      
Hallo,

Ich hatte es (beim genauen hinsehen) auch schon in meinem vorherigen Beispiel eine Loesung gezeigt:
Code:

legend(axes1,'data');  % zeigt nur die Legende vom 1. Datensatz an
 


Du koenntest ja z.B. alle deine Daten plotten und am Ende die Linie hinzufuegen. Nun legst du n-1 Legendennamen fest. Ist dies nicht moeglich (Linie als letztes zeichnen), so musst du dem Legend-Befehl die handles und Namen uebergeben, z.B.:


Code:

h1 = plot(x,y);
line([min(x), max(x)], [0, 0],'Color','red');
h2 = plot(x2,y2);

legend([h1 h2],'plot1','plot2');

% bzw
legend(h,'plot1','plot2');
wenn alle handles in h gespeichert wurden
h(1) = plot
h(2) = plot
 


MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 09.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.02.2011, 11:25     Titel:
  Antworten mit Zitat      
Geht!!!

Perfekt, vielen Dank!
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.