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

Senkrechter Strich als Marker

 

Thomas_74
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 06.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.09.2010, 14:17     Titel: Senkrechter Strich als Marker
  Antworten mit Zitat      
Hi gibt es die Möglichkeit einen senkrechten Strich als Marker zu benutzen?
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: 15.09.2010, 19:06     Titel:
  Antworten mit Zitat      
Hallo,

ich wuerde vorschlagen, dass du die Position (x,y Koordinaten) der Punkte im plot verwendest und durch diese Punkte mittels dem annotation('line',....) command die senkrechten striche zeichnest.

Hoffe das hilft erstmal weiter?

MFG

Sco
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: 16.09.2010, 18:42     Titel:
  Antworten mit Zitat      
Hallo ich bin es nochmal Smile,

weil ich die Frage doch recht interessant fand hab ich mal ein wenig intensiver damit beschaeftigt und bin zu folgender Loesung gekommen:

Code:

x = 0:.5:2*pi;
y = sin(x);
   
plot(x,y)
hold on
text(x,y,'\mid','Interpreter', 'tex', 'HorizontalAlignment', 'center','VerticalAlignment','middle', 'Color',[1 0 0],'FontSize', 15);
ylim([-1.2 1.2]),xlim([-0.2 6.2]);
 


Denke das ist was du wolltest? Ueber die FontSize kannst du die Groesse der senkrechten Striche regeln.

MFG

Sco
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: 17.09.2010, 18:02     Titel:
  Antworten mit Zitat      
Auch wenn ich hier den Alleinunterhalter spiele, noch eine Verbesserung:

Code:

x = 0:.5:2*pi;
y = sin(x);

 plot(x,y)
 hold on
 line([x; x], [y - 0.15; y + 0.15],'Color','red');
 


Nun werden beim Zoomen die senkrechten Striche mit vergrößert. Danke an Jan S für den Tipp mit dem line Befehl!

MFG

Sco
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: 17.09.2010, 18:15     Titel:
  Antworten mit Zitat      
Hallo Sco,

Es ist für die Leser immer wertvoll, wenn Lösungen gezeigt werden. Das ist also eine sehr hilfreiche Variante von "Alleinunterhalter" - viel
besser als z.B. "Jetzt klappt's". Danke!

Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Nur Ein Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2012, 13:45     Titel:
  Antworten mit Zitat      
Ich dachte Äußerungen wie:"Danke, jetzt klappt es." Sind hochgradig erwünscht, weil sie das einzige Feedback für die Autoren sind.
Also auch von mir:
Danke für die vorgestellten Varianten.
 
Sco
Forum-Meister

Forum-Meister


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

ich denke ein "Danke jetzt klappts" ist trotzdem motivierender als gar kein Feedback. Ich denke wenn sich jemand schon die Muehe macht und eine Frage beantwortet, dann ist doch ein Danke das mindeste was man erwarten kann. Ich persoenlich hasse nix mehr als Threads wo es gar kein Feedback gibt.

MFG

Sco
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: 04.02.2012, 00:32     Titel:
  Antworten mit Zitat      
Hallo Sco,

Ich dachte dabei an einen Thread wie:
Fragender: Wie kann ich XYZ berechnen und anzeigen?
Anwortender: Könnte mit ODE45 oder SPRINTF funktionieren.
Fragender: Ja Danke, jetzt klappt's.

Feedback ist auf jeden Fall eine freundliche Geste.
Ich mag es noch mehr, wenn die Fragenden sich Mühe geben alle benötigten Informationen zu geben und Unnötiges wegzulassen. "Ich habe diese 1000 Zeilen Code: ... Es funktioniert aber nicht!" ist dagegen eine Verschwendung der Zeit für alle, die helfen wollen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
hackhuebi
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 28.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2015, 18:08     Titel:
  Antworten mit Zitat      
Hallo,
gibt es eine möglichkeit diese senkrechten Marker zu beschriften? Ich würde diese gerne nutzen um in einem logarithmischen Plot bestimmte Zeiten wie 1 Tag, 1 Jahr usw anzuzeigen. Wäre super wenn oben im Plot neben den Markern die jeweiligen Zeiträume stehen würden. Vielen Dank!
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: 25.11.2015, 17:46     Titel:
  Antworten mit Zitat      
Erster Post nach 3-Jahren, lang ist es her Smile

So in der Art sollte das funktionieren:

Code:

x = 0:.5:2*pi;
y = sin(x);

plot(x,y)
hold on
line([x; x], [y - 0.15; y + 0.15],'Color','red');
text(x-.2, y+.25,'Text');
 


MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
hackhuebi
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 28.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2015, 17:52     Titel:
  Antworten mit Zitat      
mein code sie so aus:
Code:
% positionen für die Marker
x = [86400 604800 2628000 31536000 31536000*10 31536000*20];
% die Höhe des Markers wird von der Höhe der Axes abgeleitet:
lim = get(gca,'YLim');
% Marker zeichen
h = arrayfun(@(x) line([x x],lim),x) ;

set(h,'Color','k','LineStyle','--');
set(gca,'Xscale','log');


kannst du mir dafür auch weiterhelfen? Smile
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: 25.11.2015, 18:15     Titel:
  Antworten mit Zitat      
Sollten wir hinbekommen:

Code:

% positionen für die Marker
x = [86400 604800 2628000 31536000 31536000*10 31536000*20];
% y Position des Textes für jedes x
y = zeros(1,length(x))+0.8;
% die Höhe des Markers wird von der Höhe der Axes abgeleitet:
lim = get(gca,'YLim');
% Marker zeichen
h = arrayfun(@(x) line([x x],lim),x) ;

text(x,y,'Text');

set(h,'Color','k','LineStyle','--');
set(gca,'Xscale','log');
 


MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
hackhuebi
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 28.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2015, 18:28     Titel:
  Antworten mit Zitat      
super, vielen dank für die schnelle hilfe!

das ist dann der kurze code auf mein beispiel bezogen:
Code:
text(86400,28,'1 Tag');
text(86400*7,28,'1 Woche')


kann ich es auch irgendwie realisieren, dass er keinen konkreten y-wert braucht, sondern zB immer 80% der fensterhöhe nimmt?
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: 25.11.2015, 18:53     Titel:
  Antworten mit Zitat      
Du hast doch schon die Information die du brauchst:

Code:

% y Position des Textes für jedes x
y = zeros(1, length(x))+0.8*lim(2);
text(x,y,'Text');
 


MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
hackhuebi
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 28.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2015, 19:08     Titel:
  Antworten mit Zitat      
entschuldige, ich hate die zeile für die y-werte völlig übersehen.

leider ist mein problem so noch nicht ganz gelöst. einen vergleichbaren weg hatte ich auch schon probiert.
so bezieht er das verhältnis ja immer auf den maximalwert der y-achse. ändert sich dort aber die skalierung, funktioniert das nicht mehr. schön wäre es, den wert irgendwie auf die plothöhe zu beziehen.

bsp:
ylim([15 30]) --> 0.8x30= 24, also knapp über der hälfte des angezeigten bereichs
ylim([22 30]) --> 0.8x30= 24, also am unteren Rand des Diagrams
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.