Most function will assume images of type double have a data range of [0 1], unless you tell them otherwise. The documentation for geoshow is a bit unclear about this, but it seems to follow the same convention.
You should rescale your data to whatever you're expecting to be the data range. Using [] with imshow implicitly rescales your data to [0 1], so like this:
data=(data-min(data(:)))/(max(data(:))-min(data(:)));
(actually it sets the caxis instead of changing your data)