# Using errorbar() with semilogy() in MATLAB?

I'd like to plot data x & y with errorbars, ebar, and its fit, yfitted, on a semilog plot. This doesn't seem to work:

figure; hold on; errorbar(x,y,ebar); semilogy(x,yfitted);

Instead of semilog plot I get a linear plot. What should I be doing differently?

## Answers

try

h = errorbar(x,y,ebar); set(get(h,'Parent'), 'YScale', 'log')

or

ax = axes(); errorbar(ax, x,y,ebar); set(ax, 'YScale', 'log');

This is what the documentation says.

"If you attempt to add a loglog, semilogx, or semilogy plot to a linear axis mode graph with hold on, the axis mode will remain as it is and the new data will plot as linear"

I would suggest that you just reverse the order of your plotting, that is.

semilogy(x,yfitted); hold on; errorbar(x,y,ebar);