Here is an example solution if you need only the second axis to display a different scale (Jeff_K solution, but more developed):
first_axis = gca; sqz = 0.12; %// distance to squeeze the first plot set(first_axis, 'Position', get(first_axis, 'Position') + [0 sqz 0 -sqz ]); ax2 = axes('Position', get(first_axis, 'Position') .* [1 1 1 0.001] - [0 sqz 0 0],'Color','none'); scale_factor = 42; %// change this to your satisfaction xlim(get(first_axis, 'XLim') * scale_factor); set(ax2, 'XScale', get(first_axis, 'XScale')); %// make logarithmic if first axis is too
johan
source share