How can I get the XMinorTick as a numerical value?

10 visualizzazioni (ultimi 30 giorni)
Hi, I want to know the minor step size of my x-axis. The XTickMode is set to auto and I know that XMinorTick={on/off}, but I want to calculate the numerical value of minor step size just like: XTick(2)-XTick(1) for example:
XTick = [0:2:10]
MajorStep = XTick(2) - XTick(1); % 2-0=2
if MajorStep(2) - MajorStep(1) > 1
set(gca,'XMinorGrid','on','XMinorTick','on')
end
% now I want to calculate the minor step size
% MinorStep = XMinorTick(2) - XMinorTick(1) this obviously is not going to work but I want the numerical answer of it
Can anybody help me please?
  1 Commento
dpb
dpb il 26 Feb 2016
Modificato: dpb il 27 Feb 2016
Don't think so...the minor ticks values are hidden in HG with no way to access them. I suppose one could save the figure as an image and find the pixels that are set and deduce it from that but is pretty tough.
The best think one could do would be to try to work out heuristically how many minor ticks there will be based on the major tick spacing; by default it starts with five, if you increase the spacing as you did above in the example there are 10; if decrease by spacing at 0.5 for major then there's only 2. (These are divisions between major divisions, not the intermediate ticks). But I don't think there's any way to retrieve what is done internally.
ADDENDUM Oh, in digging following up Kevin's response I see there is a recent enhancement...but must have R2015b or later to gain access to it.

Accedi per commentare.

Risposte (1)

Kevin Claytor
Kevin Claytor il 26 Feb 2016
with ax = your axes object
ax.XAxis.MinorTickValues
  2 Commenti
Soroush Asarzadeh
Soroush Asarzadeh il 27 Feb 2016
with this code
ax=gca;
MinorStep=ax.XAxis.MinorTickValues;
I get the following error message: No appropriate method, property, or field XAxis for class matlab.graphics.axis.Axes.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by