Joe
Joe

Reputation: 4514

How Do I Annotate Charts in MATLAB?

I've got a MATLAB script that is called every half hour to build a chart that is placed on my webpage:

load ~/emailAnalysis/results.txt
temp = results(:,3)-1238370000;
h=plot(temp,results(:,1))
xlim([0,max(temp)-1])
ylim([0 max(results(:,1))])
set(gca,'XTick',[1:86400*7:(86400*max(temp))+1])
set(gca,'XTickLabel',[1:1:100])
set(gca,'XGrid','on')
title('Size of inbox over time')
xlabel('Time (Weeks)')
ylabel('Emails')
set(h,'LineWidth',2)
print -djpeg /www/home/joseph/inboxlongterm.jpeg
exit

I'd like to be able to annotate the chart with the occasional text comment (for example, some text centered on a particular x,y coordinate saying "On holiday" or similar).

I had a bit of a Google and didn't get very far at all. Any ideas?

Upvotes: 4

Views: 933

Answers (3)

Sam Roberts
Sam Roberts

Reputation: 24127

To add text to a figure at coordinates x,y, use the command

text(x,y,'string')

If you want the text centred on x,y, try:

h = text(x,y,'string')
set(h,'HorizontalAlignment','center')

You can also add arrows or lines to connect the text to a point on a graph using the annotation function.

Upvotes: 4

Bessi
Bessi

Reputation: 762

You can also use the text function

text(x,y,'string') 

where x,y are the coordinates. If you want to output text with tex symbols you can combine the texlabel function with the text function

text(x,y, texlabel('lambda12^(3/2)/pi - pi*delta^(2/3)'))

Upvotes: 2

Jon W
Jon W

Reputation: 15806

Looks like MATLAB allows programmatic annotations with the annotation() function.

alt text http://www.mathworks.com/access/helpdesk/help/techdoc/ref/annotationex1.gif

Upvotes: 4

Related Questions