logarithmic axis when using area plots?!
9 views (last 30 days)
Show older comments
Hi,
I have plot containing two area plots:
area(x1,y1);
hold on
area(x2,y2,'FaceColor','red');
axis auto;
Now I'd like to make the x-axis logarithmic via:
set (gca, 'Xscale', 'log')
This creates logarithmic x-axes, however it deletes the color of the first area plot (leaving just a line plot) and messes up the range. Any suggestions on how to create a semilog area plot with two areas?
Thanks Arnold!
PS: Sorry that the Text Markup doesn't seem to work here either (or only in my view?!)
2 Comments
the cyclist
on 28 Apr 2013
Can you create a small example that exhibits the problem? I'm guessing your original plots goes through zero, which may cause the logarithmic axes problems.
Accepted Answer
Ingo Schalk-Schupp
on 4 Sep 2013
The problem is that your x data contains a value of zero, the logarithm of which is undefined. There is no zero on a logarithmic axis. To avoid this, simply start your area, for instance, at an x value of 1 instead of 0:
x1 = 1:1:d;
If you additionally want a logarithmic y axis, the same problem arises because by default, the painted area face goes down to zero. However, you can specify a different BaseValue like this:
area(x2, y2, 'FaceColor', 'red', 'BaseValue', 1e0)
Cheers
0 Comments
More Answers (0)
See Also
Categories
Find more on Annotations 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!