Non-linearly spaced graph

2 views (last 30 days)
Farid on 2 May 2020
Edited: Walter Roberson on 3 May 2020
How is it possible to create this graph's x and y axis?
Farid on 3 May 2020
No equation is provided, what I want to do is creating a figure with this scanned plot as its background then assigning the corresponding values to x and y axis.
thank you

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 2 May 2020
Heavy lines are drawn corresponding to XTickValues and YTickValues, provided that axis XGrid = 'on' and YGrid = 'on'. The positions do not need to be regular.
Lighter dashed lines are drawn corresponding to the axis XRuler.MinorTickValues and YRuler.MinorTIckValues, provided that XMinorGrid = 'on' and YMinorGrid = 'on' . However, I cannot find any way to customize the minor grid at the moment. I thought I had found a customization if XRuler.MinorTick is 'on' and YRuler.MinorTick is 'on' by adjusting XRuler.MinorTickChild but that turns out to only affect drawing ticks at the MinorTickValues location. I guess in theory you could adjust XRuler.MinorTickChild.VertexData and related parameters to extend those tick marks across the axes, but I don't know that it would be worth the trouble.
Walter Roberson
Walter Roberson on 3 May 2020
Edited: Walter Roberson on 3 May 2020
?? Why would use use xticklabels that do not match to the xticks? For example why would you label 0.98 position as being 5 ???
If it is because of the different spacing, then what you should be doing is using a log axes, using
set(gca, 'XScale', 'log', 'YScale', 'log')

Sign in to comment.

More Answers (1)

Farid on 3 May 2020
I did it this way:
I = imread('askf1.png');
h = image(xlim,ylim,I);
xticks([0 0.095 0.2 0.325 0.42 0.528 0.65 0.75 0.84 0.98])
xticklabels({'.005','.01','.02', '.05','.1', '0.2','0.5','1','2','5'})


Find more on Graphics Performance in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by