This function will add a second x axis to a plot with the top ticks at arbitrary positions (you are not limited to the bottom tick positions). The new axis is created behind the original axis, and the two axes are linked together. This gives a much more intuitive behaviour, for example clicking in the figure window will select the original axis. It also alows you to drag the plot around, resize the limits and change between a log/linear scale without having to update the dummy axis manually.
I would like to ask for your help into improving this code. I am looking for the following functionality: when I zoom into the figure, the top x-axis does not automatically readjust the number of points, just like the bottom x-axis does. Any idea how to achieve this?
Comment 1: I think it is a good idea to change lines 46 and 49 as follows:
(46) temp=[TopTickPositions(:), TopTickLabels(:)];
(49) temp = sortrows(temp);
This will allow users to enter either row or column vectors (or both) for the ticks and labels.
Comment 2 (regarding the bug that Thierry reported):
It can be fixed if line 50 is replaced by
temp(diff(temp(:,1))==0,:) = ;
Thank you so much for this submission! It took me 15 minutes of playing around with it to figure it out (it wasn't immediately clear to me that TopTickPositions were the positions on the original axis and that TopTickLabels were the associated values on the new axis). But it works great! I really appreciate it - thanks!!
09 Nov 2007
will always remove on tick label.
30 Nov 2006
Works well, very useful for me. Thanks!
15 Sep 2006
Many thanks for your comment. I have changed the example and added a screenshot.
06 Sep 2006
1. The example does not work (??? Undefined function or variable 'T')
2. This kind of submission typically requires a screenshot!