So in case this might be useful for anyone I managed to solve this myself. My new code uses netCDF data rather than the threee column csv file. Iam sure is not pretty but seems to work OK.
%annual average surface temperature map for the western tropical pacific using data from the WORLD OCEAN ATLAS 2018 https://www.nodc.noaa.gov/OC5/woa18/woa18data.html
%%Define variables
clc; clear all ;
ncfile = 'woa18_decav_t00_04.nc' ; %loads temperature file
long = ncread(ncfile,'lon') ;nx = length(long) ;%obtains longiturdes and their size
lat = ncread(ncfile,'lat') ; ny = length(lat) ; %obtains latitudes and their size
time = ncread(ncfile,'time') ; nt = length(time) ; %reads the time variable and obtains its size
sst = ncread(ncfile,'t_an') ; %gets sea surface temperature value
[X,Y] = meshgrid(long,lat) ; % transform longitudes and latitudes into a grid of lon long x lat dimension
%% in case salinty wants to be used
ncfileS = 'woa18_decav_s00_04.nc' ; %loads salinity file
sal = ncread(ncfileS,'s_an'); %defines salinity variable
%%generates map
figure('Color','white'); %creates figure
ax=worldmap([-30 30],[130 -120]) % loads world map with the limits for the western tropical pacific
setm(ax,'mapprojection','mercator','Origin', [0 180 0]) %changes projection and changes origin reference for coordinates
levels=[18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34]; % creates levels for contours
geoshow(double(Y),double(X),sst','DisplayType','texturemap') %creates surface map of temperature
cb = contourcbar('peer',ax,'Location','southoutside'); %creates colorbar
caxis([15 35]) %defines limits for colorbar
colormap(jet) %sets color scheme
set(get(cb,'XLabel'),'String','SST (^oC)') %title for color bar
set(cb,'Position',[0.23 0.2417 0.5750 0.0335]) %adjust location and size of color bar
levels=[28]; %sets level for contour defining the Western Pacific Warm Pool
geoshow(double(Y),double(X),sst','DisplayType','contour','LevelList',levels,'LineColor','black') %plots temperature contour defining the western Pacific Warm Pool
land = shaperead('landareas.shp', 'UseGeoCoords', true); %define land areas
geoshow(land, 'FaceColor', [0 0 0]) % plots land areas in black
and here is the final product.