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

textbox ausserhalb axes

 

DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 24.01.2016, 14:57     Titel: textbox ausserhalb axes
  Antworten mit Zitat      
Hallo goMatlab Forum,

ich habe ein Problem mit der Position einer Textbox, welche teilweise oder ganz außerhalb von axes liegen kann. Hier ein kleines Bsp.

Code:

hfig = figure(1);
axh = gca;
set(hfig,'Renderer','opengl')
x=1:10;
y=rand(10,1);
hline = plot(x,y,'b.-');
grid on;

set(axh,'Clipping','on','ClippingStyle','rectangle')

% sichtbar
text('Position',[x(2) + (x(2)*0.05),y(2) + (y(2)*0.05)],...
     'String',{['x: ' num2str(x(2),'%.4f')],['y: ' num2str(y(2),'%.4f')]},...
     'Clipping','on',...
     'Parent',axh);
 
% ragt über axes box hinaus/wird abgeschnitten
text('Position',[x(end-1) + (x(end-1)*0.05),y(end-1) + (y(end-1)*0.05)],...
     'String',{['x: ' num2str(x(end-1),'%.4f')],['y: ' num2str(y(end-1),'%.4f')]},...
     'Clipping','on',...
     'Parent',axh);
 


Offensichtlich müsste man ja die Position entsprechend anpassen, wenn die Textbox nicht mehr (ganz) in den sichtbaren Bereich passt. Kennt evtl. jemand eine Methode/Funktion die das umsetzt? Ich habe schon in der FEX Bibliothek gesucht, bin aber noch nicht auf das Richtige gestoßen.

Leider kann man ja bei Datacursormode nicht explizt Koordinaten vorgeben, sondern muss erst einen Punkt im Plot auswählen damit ein Label gezeichnet wird.

Vielen Dank für euren Input!

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Themenstarter

Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 26.01.2016, 18:55     Titel:
  Antworten mit Zitat      
Ich habe das Problem nun mit folgender Funktion aus der FEX gelöst, welche mir die Koordinaten eines Punktes als normiert in Bezug auf axes ausgibt.

Damit positioniere ich meine Textbox entsprechend um den Punkt herum anders, wenn der Punkt zu nahe an den Axes Grenzen liegt.
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: 27.01.2016, 10:48     Titel: Re: textbox ausserhalb axes
  Antworten mit Zitat      
Hallo DSP,

Welches Problem hast Du denn genau? Was soll mit dem dargestellten Text passieren? Soll er auch außerhalb angezeigt werden, ganz aus dem sichtbaren Bereich des AXES herausgeschoben werden, oder ganz hinein?
Wieso setzt Du das 'Clipping' auf 'on'?

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

Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 27.01.2016, 20:12     Titel:
  Antworten mit Zitat      
Die annotation textbox wird vom Punkt aus ins rechte obere Viertel gesetzt und kann daher sowohl über den oberen als auch den rechten grünen Rand herausragen. Mit Clipping habe ich versucht zu verhindern, dass die textbox über den grünen Rand geht. Aber man steuert nur, ob sie im Bereich zwischen grünen und rotem Rand sichtbar oder unsichtbar ist.

Damit die Texbox innerhalb der grünen Umrandung bleibt, auch wenn der Punkt z.B. ganz rechts am Rand liegt, setze ich dann die Box links statt rechts vom Punkt. Um zu wissen ob die Box genügend Platz hat oder nicht, benötige ich die norm. Koordinaten. Was mir die Funktion liefert. Allerdings wundert es mich ein wenig, dass ich für einen Punkt genau am rechten grünen Rand eine norm. Koordinaten von ca. 0.9 erhalte. Vermutlich zählt aber der Bereich zwischen grüner und roter Umrandung mit dazu, um auf den Wert von 1 zu kommen.

Eine andere Möglichkeit habe ich bisher nicht gefunden das zu realisieren.

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.