Non-linearly spaced graph

3 views (last 30 days)
Farid
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?
  2 Comments
Ameer Hamza
Ameer Hamza on 2 May 2020
Do you have the equation of these lines?
Farid
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.
  5 Comments
Farid
Farid on 3 May 2020
might be a bit silly, but since it's once in a life time code:
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'})
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
Farid on 3 May 2020
I did it this way:
figure(1)
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'})

Products

Community Treasure Hunt

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

Start Hunting!