Version (10.4 KB) by jvc
Annotation class which generates peak marks that are automatically updated when axes are rescaled.


Updated 6 Nov 2009

View License

TMARK Tickmark annotation class for 2-D plots.

Usage: t = tmark([x,y],varargin)
t = tmark(ginput(1),'color','r','label','Peak 1')

Tmarks are user positioned annotation objects whos position's remain fixed
in axes units when plot axes are rescaled (unlike standard annotation
objects whos positions are not updated as a result of axis rescaling).
Tmarks are intended to be used to label features like peak positions in
spectroscopic data. The functionality is like the "Pin to Axes" function
except tmarks are available from the command line and in scripts. Tmarks
can be created either from the command line or interactively using
tmulti.m. Once created tmark's properties may be edited via either a
context menu (right click on the mark) or via the commaqnd line using the
utility routines tedit.m, tfind.m and trestore.m, or using the set
formalism as for other types of handle objects.

Known Limitations:
Currently when a figure containing tmarks is saved to disk and then
reloaded the tmarks become 'dormant' (i.e. they will no longer be
repositioned as a result of axis rescaling). The utility routine
trestore.m will revive the tmarks subject to some limitations - in
particular tmarks in figures containing more than one subplot may end up
being attached to the wrong axis. See the help info in trestore.m for
details and a workaround for this problem.


%Plot some data
x = 0:0.01:2*pi;
ylim([-1.5 1.5])

%Add a tmark from the command line.

tm = tmark([pi,sin(pi)],'color','r','label','Tmark')

%Modify the settings for the mark. Editing is also available by right
%clicking on the mark with the mouse.

set(tm,'resolution',0.001) %increase the resolution
set(tm,'textonly',1) %display only the text label

%Create marks interactively on the current figure using ginput. Left click
%to create marks. Press escape to exit.

tm = tmulti %tm will be a cell array of tmark handles.

End example

Required Inputs
pos .................... [x,y] coordinate of mark in experimental units

Optional Inputs
label .................. Text label to be displayed in addition to the
x-coordinate of the mark.
resolution ............. The numeric resolution of the displayed
position. For examples, a resolution of 1
will display the position rounded to the
nearest integer, a value of 0.02 will give the
position rounded to the nearest 0.02. When
tmarks are created they script picks the
initial resolution based upon the xaxis range
as reported by xlim.
textonly ............... If set to 1 only the label text is displayed
(no x-axis value). Default = 0 (label and
x position displated).
color .................. The color of the mark.
fontsize ............... Font size for the mark.
hdlAx .................. The handle of theaxis to which the tick mark
is attached.

TM ..................... Tickmark object (tmark)

See also: tedit tfind trestore tmulti

Acknowledgement - this script relies on a modified version of dsxy2figxy.m which appears as an example in the Matlab documentation.

Cite As

jvc (2023). tmark.m (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2009b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes