function percentImprovement(leaders)
x = [leaders.date];
y = [leaders.percentImprovement];
plot(x,y,'x')
box on
datetick
xlabel('submission time')
ylabel('percent improvement over previous leader ')
set(gca,'YScale','log')
title('Percent Improvement')
% Find positions of all potential labels.
t = text(x(2),y(2),'foo');
xpos = zeros(size(x));
for i = 1:length(x)
set(t,'Units','data','position',[x(i) y(i)]);
set(t,'Units','pixels');
pos = get(t,'position');
xpos(i) = pos(1);
end
delete(t)
% Label biggest improvement to smallest, skipping where it's already
% crowded in x-space.
toLabel = false(size(x));
toCheck = false(size(x));
[null,ind] = sort(y,'descend');
textHeight = 15;
for i = 1:length(ind)
next = ind(i);
if min([abs(xpos(next)-xpos(toCheck)) Inf]) > textHeight/2
toLabel(next) = true;
line(leaders(next).date,leaders(next).percentImprovement,'Marker','x','Color','red')
text(leaders(next).date,leaders(next).percentImprovement,[' ' leaders(next).author], ...
'HorizontalAlignment','left','VerticalAlignment','middle', ...
'Rotation',90)
end
toCheck(next) = true;
end